我想用循环来解决这个问题。这段代码是暴力的,我无法将其转化为循环,所以它就像一行代码。
我拿了这个清单:
['2', 'S', '3', 'S', '4', 'S', '5', 'S', '6', 'S', '7', 'S', '8', 'S', '9', 'S', '10', 'S', 'A', 'S', 'K', 'S', 'Q', 'S', 'J', 'S']
将"S"与所有元素结合起来,现在使用此代码:
combine[0 : 2] = [''.join(spades[0 : 2])]
combine[2 : 4] = [''.join(spades[2 : 4])]
combine[4 : 6] = [''.join(spades[4 : 6])]
combine[6 : 8] = [''.join(spades[6 : 8])]
combine[8 : 10] = [''.join(spades[8 : 10])]
combine[10 : 12] = [''.join(spades[10 : 12])]
combine[12 : 14] = [''.join(spades[12 : 14])]
combine[14 : 16] = [''.join(spades[14 : 16])]
combine[16 : 18] = [''.join(spades[16 : 18])]
combine[18 : 20] = [''.join(spades[18 : 20])]
combine[20 : 22] = [''.join(spades[20 : 22])]
combine[22 : 24] = [''.join(spades[22 : 24])]
combine[24 : 26] = [''.join(spades[24 : 26])]
输出:''
['2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', '10S', 'AS', 'KS', 'QS', 'JS']
''
如何使其成为for循环?
您可以尝试使用zip
:
>>> spades = ['2', 'S', '3', 'S', '4', 'S', '5', 'S', '6', 'S', '7', 'S', '8', 'S', '9', 'S', '10', 'S', 'A', 'S', 'K', 'S', 'Q', 'S', 'J', 'S']
>>> [a+b for a,b in zip(spades[::2], spades[1::2])]
['2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', '10S', 'AS', 'KS', 'QS', 'JS']
或者(正如您要求的for
循环(:
>>> res = []
>>> for a,b in zip(spades[::2], spades[1::2]):
... res.append(a+b)
...
>>> res
['2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', '10S', 'AS', 'KS', 'QS', 'JS']
试试这个:
>>> spades = ['2', 'S', '3', 'S', '4', 'S', '5', 'S', '6', 'S', '7', 'S', '8', 'S', '9', 'S', '10', 'S', 'A', 'S', 'K', 'S', 'Q', 'S', 'J', 'S']
>>> combine = [spades[i] + spades[i+1] for i in range(0,len(spades),2)]
>>> combine
['2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', '10S', 'AS', 'KS', 'QS', 'JS']