繁体   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