如果一个项目符合python中的某些规则,我该如何附加一个项目

时间:2012-03-17 21:25:43

标签: python list append

我想将一个项目附加到list_b只有'5H' '6H'以上的list_a = ('2A','4A','8H','6H') list_b = ['5H']

list_a.pop()

'6H'提供append 因此,如果我'6H' list_b它应该能够添加到'5H',因为它只有一个1

我尝试比较第一个值但是它会出错,因为下面代码中的intlist_b[-1][0]strif list_b[-1][0] + 1 != list_a.pop()[0]: print('Error')

list_b[-1][0] + 1

因此我无法使用{{1}}

4 个答案:

答案 0 :(得分:1)

使用int

将字符转换为它所代表的整数就足够了
if int(list_b[-1][0]) + 1 != int(list_a.pop()[0]):
    print('Error')

答案 1 :(得分:0)

首先,您的list_atuple,而不是列表。检查括号。

如果

list_a = ['2A','4A','8H','6H']
list_b = ['5H']

你可以这样做:

while list_a:
    t = list_a.pop()
    if int(t[0]) == int(list_b[-1][0]) + 1:
        list_b.append(t)
    else:
        print 'Error'

迭代地处理list_a的元素。

答案 2 :(得分:0)

假设list_a确实是一个列表,而不是一个元组,否则list_a.pop()将不起作用......

你需要做两件事:

(1)将第一个字符转换为int,以便您可以正确比较它们 (2)检查第二个字符是否相同......从您的问题描述中,'6G''6I'(以及许多其他字符)中的内容似乎不正确

b_value = list_b[-1]
a_value = list_a.pop()

ok = int(b_value[0]) + 1 == int(a_value[0]) and b_value[1] == a_value[1]

答案 3 :(得分:0)

使用列表理解:

list_b.extend([i for i in list_a if int(i[0]) == (int(list_b[-1][0]) + 1)])