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

时间:2017-11-29 11:23:28

标签: python string list compare

我有两个列表:

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)。 如何获得每个位置并一次获得一个角色?

1 个答案:

答案 0 :(得分:0)

使用:

[string[3] for string in L1]

"ABCD"获取L1只会获得最后一个字符串,无论它是"ABCD"还是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

相应的行为:

if str1 and str2 and len(str1) == len(str2):
    for i, char in enumerate(zip(str1, str2)):
        print(i, char[0], char[1])

然后只需检查两个字符串是否有效,就可以一次用zip()遍历两个字符串:

0 A A
1 B B
2 C C
3 D D

哪个输出:

.flex-bottom {
  display: flex;
  align-items: flex-end;
}