访问列表列表中每个列表的 n:th 个元素
Access n:th element of every list in list of lists
我在 python 中遇到问题,我需要做的一步是访问列表列表中每个列表的第二个元素。名单是:
[(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')]
[(0, 'A', 'DET' 'det'), (1 'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]
列表就这样继续下去,每个列表都有不同的句子。
我想做的是访问每个元组的每个列表的第三个(索引 2)元素。所以从第一个列表中,我想得到:
- PROPN(来自 'Gallery')
- 动词(来自 'unveils')
- 调整(来自 'interactive')
从第二个列表中我想得到:
- DET(来自 'A')
- PROPN(来自 'Christmas')
- 名词(来自'nsubjpass)
我尝试做的是:
for word in list:
print(list[word[0]][2])
但这只输出第一个列表中的第二个元素。我尝试创建另一个 foor 循环但没有用,我怀疑我做错了但我不确定如何解决它
不胜感激
提前致谢!
当您在 for 循环中枚举列表时:
for word in words:
pass // do something
您已经访问了列表中的元素并将其存储在word
。
因此,循环中的 word[0]
将访问单词元组中的第一个元素,这不是您想要做的。
相反,您想要访问元组中的 word[2]
,因此这样的事情应该可行:
first_list = [(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')]
second_list = [(0, 'A', 'DET' 'det'), (1, 'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]
def print_word_pos(words):
for word in words:
print(word[2])
print_word_pos(first_list)
print_word_pos(second_list)
另一件事是你不应该将你的列表命名为 list
因为 list
是一个保留的 python 关键字并且可能(将)在以后引起冲突。
现在,如果合并前两个列表,您需要遍历每个列表,然后针对该列表中的每个单词,打印出词性。
def print_word_pos(list_of_words):
for words in list_of_words:
for word in words:
print(word[2])
word= [[(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')],[(0, 'A', 'DET' 'det'), (1 ,'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]]
[j[2] for i in word for j in i] ==> 输出 ['PROPN', 'VERB', 'ADJ', 'DETdet', 'PROPN', 'NOUN']
[j[1] for i in word for j in i] ==> 输出 ['Gallery', 'unveils', 'interactive', 'A', 'Christmas', 'tree']
你应该试试:
all_my_lists= [
[(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')],
[(0, 'A', 'DET' 'det'), (1, 'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]
]
for my_list in all_my_lists:
for tup in my_list:
print(tup[2])
第一个循环遍历 my_lists 列表中的每个子列表。
第二个循环遍历每个元组(带有'(,)'括号的集合。
即元组 = (0, 'Gallery', 'PROPN', 'nsubj')
并打印第三个元素。
试试这个代码:
`对于列表中的 sub_list_temp:
for temp_tuple in sub_list_temp:
print(temp_tuple[2])
`
我在 python 中遇到问题,我需要做的一步是访问列表列表中每个列表的第二个元素。名单是:
[(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')]
[(0, 'A', 'DET' 'det'), (1 'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]
列表就这样继续下去,每个列表都有不同的句子。
我想做的是访问每个元组的每个列表的第三个(索引 2)元素。所以从第一个列表中,我想得到:
- PROPN(来自 'Gallery')
- 动词(来自 'unveils')
- 调整(来自 'interactive')
从第二个列表中我想得到:
- DET(来自 'A')
- PROPN(来自 'Christmas')
- 名词(来自'nsubjpass)
我尝试做的是:
for word in list:
print(list[word[0]][2])
但这只输出第一个列表中的第二个元素。我尝试创建另一个 foor 循环但没有用,我怀疑我做错了但我不确定如何解决它
不胜感激
提前致谢!
当您在 for 循环中枚举列表时:
for word in words:
pass // do something
您已经访问了列表中的元素并将其存储在word
。
因此,循环中的 word[0]
将访问单词元组中的第一个元素,这不是您想要做的。
相反,您想要访问元组中的 word[2]
,因此这样的事情应该可行:
first_list = [(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')]
second_list = [(0, 'A', 'DET' 'det'), (1, 'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]
def print_word_pos(words):
for word in words:
print(word[2])
print_word_pos(first_list)
print_word_pos(second_list)
另一件事是你不应该将你的列表命名为 list
因为 list
是一个保留的 python 关键字并且可能(将)在以后引起冲突。
现在,如果合并前两个列表,您需要遍历每个列表,然后针对该列表中的每个单词,打印出词性。
def print_word_pos(list_of_words):
for words in list_of_words:
for word in words:
print(word[2])
word= [[(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')],[(0, 'A', 'DET' 'det'), (1 ,'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]]
[j[2] for i in word for j in i] ==> 输出 ['PROPN', 'VERB', 'ADJ', 'DETdet', 'PROPN', 'NOUN']
[j[1] for i in word for j in i] ==> 输出 ['Gallery', 'unveils', 'interactive', 'A', 'Christmas', 'tree']
你应该试试:
all_my_lists= [
[(0, 'Gallery', 'PROPN', 'nsubj'), (1, 'unveils', 'VERB', 'root'), (2, 'interactive', 'ADJ', 'amod')],
[(0, 'A', 'DET' 'det'), (1, 'Christmas' , 'PROPN', 'compound'), (2, 'tree' ,'NOUN', 'nsubjpass')]
]
for my_list in all_my_lists:
for tup in my_list:
print(tup[2])
第一个循环遍历 my_lists 列表中的每个子列表。
第二个循环遍历每个元组(带有'(,)'括号的集合。 即元组 = (0, 'Gallery', 'PROPN', 'nsubj') 并打印第三个元素。
试试这个代码:
`对于列表中的 sub_list_temp:
for temp_tuple in sub_list_temp:
print(temp_tuple[2])
`