如何从列表中取出字符串并一次比较一个角色



我有两个列表看起来像:

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

最新更新