我在python中有一个列表。此列表中包含子列表。 例如:
[['85.', 'Document', 'will', 'discuss', 'allegations,', 'or', 'measures', 'being', 'taken', 'against,', 'corrupt', 'public', 'officials', 'of', 'any', 'governmental', 'jurisdiction', 'worldwide.'], ['56.', 'Document', 'will', 'include', 'a', 'prediction', 'about', 'the', 'prime', 'lending', 'rate,', 'or', 'will', 'report', 'an', 'actual', 'prime', 'rate', 'move.'], and so on]
当我打印mylist [0]时,我得到以下内容:
['85.', 'Document', 'will', 'discuss', 'allegations,', 'or', 'measures', 'being', 'taken', 'against,', 'corrupt', 'public', 'officials', 'of', 'any', 'governmental', 'jurisdiction', 'worldwide.']
当我打印mylist [0] [0]时,我得到85.
我是python的新手,我不明白如何在for循环中访问这些值(85,56等),这样我就可以删除所有数字。即85,56等。
[[1, 23], [2, 34], [3, 45], [1, 45], [2, 44]]
我想添加第一个元素相同的所有第二个元素。即我想添加23 + 45(因为两者都有1作为他们的第一个元素)。我理解我需要一个for循环,但我是python的新手,我无法理解循环。答案 0 :(得分:1)
获取所有第一个元素:
zip(*your_list)[0]
zip(*some_iterable)
进行某种矩阵求逆 - 你应该用它来做一些想法。
要从一组可迭代中删除所有第一个值,您可以选择几种方法。 E.g:
[item[1:] for item in your_list] # probably the best
zip(*zip(*your_list)[1:]) # tricky and probably slow one
要总结你的价值,你需要一本字典:
>>> from collections import defaultdict
>>> l = [[1, 23], [2, 34], [3, 45], [1, 45], [2, 44]]
>>> d = defaultdict(int)
>>> for item in l:
d[item[0]] += item[1]
>>> d.items()
[(1, 68), (2, 78), (3, 45)]
我们在此使用defaultdict
来执行此d[item[0]] += item[1]
分配。简单dict
我们得到KeyError
,因为我们的d
为空。但在这种情况下defaultdict
只返回默认值 - int()
,即0
。
答案 1 :(得分:1)
基本上,python将mylist [0] [0]的每个部分视为2个单独的命令。
第一个电话:mylist[0]
返回
['85.', 'Document', 'will', 'discuss', 'allegations,', 'or', 'measures', 'being', 'taken', 'against,', 'corrupt', 'public', 'officials', 'of', 'any', 'governmental', 'jurisdiction', 'worldwide.']
这是原始列表中的第一项。第二部分获取THAT列表的<first call>[0]
或第0个元素。它应该返回85
。
为了访问下一个列表的第一个元素,你可以使用mylist[1][0]
(获取第二个元素,返回该列表中的第一个元素......
要获取 all 列表中的第一个元素列表,请使用列表解析:
first_items = [item[0] for item in mylist]
print(first_items)
...
[85, 56,... and so on]
要“删除”列表中的所有第一个元素,您可以执行称为切片的操作。您可以使用仅每个列表的第二个元素(依此类推)创建一个新列表:
new_list = [item[1:] for item in mylist]
答案 2 :(得分:1)
第一个问题:
first_values = [int(sublist[0]) for sublist in data]
对于你的第二个问题:
x = [[1, 23], [2, 34], [3, 45], [1, 45], [2, 44]]
dicto = {}
for sublist in x:
try:
dicto[sublist[0]] = dicto[sublist[0]] + sublist[1]
except KeyError:
dicto[sublist[0]] = sublist[1]