【问题标题】:Use index of first and second repeated index in list使用列表中第一个和第二个重复索引的索引
【发布时间】:2017-06-22 14:41:49
【问题描述】:

那里有很多类似的帖子,但我找不到与我正在处理的问题直接匹配或导致解决方案的内容。

我想使用列表中包含的重复索引的第二个实例作为另一个列表的索引。执行该函数时,我希望从列表开头到第一个 '\*' 的所有数字在 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)

基本上,我想将第一个星号称为用户代码的右索引,第一个星号作为左索引,第二个星号作为密码的右索引,第二个星号作为密码的左索引代码。

我只是不知道如何让它寻找连续的星号。如果有更简单的方法来执行这个,请告诉我!

【问题讨论】:

  • 加入列表中的所有项目,然后使用split('\*')
  • 你有"['1', '2', '3', '4', '5', '\*',...,但说你想要User Code: 1234然后Pass Code: 5... - 我误解了,还是你把*放在列表中的错误位置(在字符串中)?跨度>
  • @doctorlove 我不小心复制了错误的数据集——我确实把 * 放在了错误的位置。我现在将对其进行编辑。谢谢你的好眼光。

标签: python string list python-3.x split


【解决方案1】:

给定,

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']"

将它们作为一个列表可能值得,然后您可以使用上面的加入/拆分方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2021-10-12
    • 2015-12-06
    • 2017-05-23
    • 2021-04-14
    • 2021-08-28
    相关资源
    最近更新 更多