我有两个列表看起来像:
L1 = [[25, 34, 'ABCD', 'EFG']] L2 = [[12, 22, 'ABCD', 'EGH']]
我想提取" abcd"从这两个列表中都比较他们一个角色。从我使用的列表中提取字符串:
string1 = [string[3] for string in L1] string2 = [string[3] for string in L2]
要比较我使用的:(因为我既想要角色又想要位置)
if len(string1) == len(string2): for i, char in enumerate(string1): print(i) print(char)
打印时,我只能获得位置0,对于char,我得到了整个字符串(ABCD)。我应该如何做每个位置并一次获得每个角色?
使用:
[string[3] for string in L1]
从L1
获取"ABCD"
,只能获得最后一个字符串,如果是"ABCD"
,则无需irregard。只需简单地编写一个为您提取此功能的函数:
def extract(lst, ext):
for l in lst:
for string in l:
if string == ext:
return string
return None
相应地行为:
L1 = [[25, 34, 'ABCD', 'EFG']]
L2 = [[12, 22, 'ABCD', 'EGH']]
str1 = extract(L1, "ABCD")
str2 = extract(L2, "ABCD")
fail = extract(L1, "ABC")
>>> print(str1)
"ABCD"
>>> print(str2)
"ABCD"
>>> print(fail)
None
然后,一旦检查了两个字符串以有效:
,请立即使用zip()
循环循环。
if str1 and str2 and len(str1) == len(str2):
for i, char in enumerate(zip(str1, str2)):
print(i, char[0], char[1])
输出:
0 A A
1 B B
2 C C
3 D D