簡體   English   中英

我有一個列表,其中每個元素都是列表中的單個數字。 如何提取數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM