![](/img/trans.png)
[英]I have a list which has been created from another list. However, I do not want two names repeating after each other. How can I do that?
[英]I have a list in which each element is a single number in a list. How do I extract the numbers?
我是 python 初學者,我有一份清單。 它是這樣的:
my_list=[
{"first":"1"},
{"second": "2"},
{"third": "1"},
{"four": "5"},
{"five":"5"},
{"six":"9"},
{"seven":"7"}
]
我想提取此列表的單個值。 我寫了以下代碼:
values = []
for element in my_list:
val = list(element.values())
values.append(val)
print(values)
這是我的 output:
[['1'], ['2'], ['1'], ['5'], ['5'], ['9'], ['7']]
我只希望值數字出現在我的列表中。 [1,2,1,5,5,9,7] 如何修復我的代碼?
您幾乎是正確的,但是list(element.values())
給了您一個列表,您不想 append列表本身,而是其中的唯一項目。 訂閱也是如此:
values.append(val[0])
或者您可以使用.extend()
而不是.append()
:
values.extend(val)
如果我要寫這篇文章,我會做以下其中一項:
print([list(d.values())[0] for d in my_list])
print([next(iter(d.values())) for d in my_list])
.values()
返回一個 dict_values object,這是一個可迭代的,因為你正在將它轉換為一個列表,所以你可以提取第一個索引以獲得你想要的格式,就像這樣
values = []
for element in my_list:
val = list(element.values())[0]
values.append(val)
print(values)
你可以這樣做,
In [1]: list(map(lambda x:list(x.values())[0], my_list))
Out[1]: ['1', '2', '1', '5', '5', '9', '7']
my_list=[
{"first":"1"},
{"second": "2"},
{"third": "1"},
{"four": "5"},
{"five":"5"},
{"six":"9"},
{"seven":"7"}
]
values = [int(element.popitem()[1]) for element
in my_list]
print(values)
如有疑問,只需pop
(最近添加的)項目:
>>> my_list = [
... {"first": "1"},
... {"second": "2"},
... {"third": "1"},
... {"four": "5"},
... {"five": "5"},
... {"six": "9"},
... {"seven": "7"}
... ]
>>> [int(d.popitem()[1]) for d in my_list]
[1, 2, 1, 5, 5, 9, 7]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.