那里有很多类似的帖子,但我找不到与我正在处理的问题直接匹配或导致解决的问题。
我想使用列表中包含的重复索引的第二个实例作为另一个列表的索引。执行该功能时,我希望从列表开头到第一个'\*'
的所有数字在Code1之后打印,所有数字都在第一个'\*'
和第二个'\*'
之间打印在Code2之后,然后是第二个'\*'
之后的所有数字,直到Code3之后打印到列表的末尾。 digit
的示例数据为"['1', '2', '3', '4', '5', '\*', '6', '\*', '7', '8', '9', '10', '1']"
。
换句话说,我希望下面的代码打印,假设这些数字存在,User Code: 12345, Pass Code: 6, Pin Code: 789101
,全部在一行中。
print_string += 'User Code: {} '.format(''.join(str(dig) for dig in digit[:digit.index('*')])) + \
'Pass Code: {} '.format(''.join(str(dig) for dig in digit[digit.index('*'):digit.index('*')])) + \
'Pin Code: {} '.format(''.join(str(dig) for dig in digit[digit.index('*'):]))
print(print_string)
基本上,我想将第一个星号称为用户代码的正确索引,第一个星号作为左索引,第二个星号作为Pass Code的右索引,第二个星号作为Pin的左索引代码。
我无法弄清楚如何使它成为连续的星号。如果有更简单的方法来执行此操作,请告诉我!
答案 0 :(得分:0)
鉴于,
L = ['1', '2', '3', '4', '5', '\*', '6', '\*', '7', '8', '9', '10', '1']
然后
str.join('', L)
将形成一个字符串
'12345\\*6\\*789101'
你可以分成三个部分
parts = str.join('', L).split('\*')
然后拿出你需要的东西
user_code = parts[0]
pass_code = parts[1]
pin = parts[2]
如果你确实得到了像字符串形状的列表中的所有数字,
"['1', '2', '3', '4', '5', '\*', '6', '\*', '7', '8', '9', '10', '1']"
将它们作为列表可能是值得的,然后您可以使用上面的join / split方法。