为名称对分配相同的ID

2024-06-08 22:58:32 发布

您现在位置:Python中文网/ 问答频道 /正文

nameList = ["sam", "tom", "jack", "james" , "robbie", "Lewis"]
id = 1

有一个名字列表和一个初始化为1的id。你知道吗

我要为列表中的前两个名称分配名称id,然后递增id

到目前为止我的代码片段:

nameList = ["sam", "tom", "jack", "james" , "robbie", "Lewis"]
id = 1
for names in nameList:
    print names + "," + str(id)
    id = id + 1

所需输出为:-

sam,1
tom,1
jack,2
james,2
robbie,3
Lewis,3

有什么帮助吗?谢谢


Tags: 代码in名称id列表fornamessam
3条回答
for names in nameList:
    print names + "," + str((id+1)/2)
    id = id + 1

只需使用enumerate迭代列表,然后使用(index / 2) + 1,就可以得到想要打印的实际值

nameList = ["sam", "tom", "jack", "james", "robbie", "Lewis"]
for idx, item in enumerate(nameList):
    print "{}, {}".format(item, (idx / 2) + 1)

输出

sam, 1
tom, 1
jack, 2
james, 2
robbie, 3
Lewis, 3

您可以尝试使用enumerate并检查字符串的索引是否为偶数。如果是,增加id

nameList = ["sam", "tom", "jack", "james" , "robbie", "Lewis"]
id = 0
for i, names in enumerate(nameList):
    if i % 2 == 0:   # if 'i' is even
        id = id + 1   # or id += 1, both are equivalent
    print names + "," + str(id) # if all elements are strings, 'str()' is not required

注意在每次迭代中i将取[0, length-1]范围内的数字

相关问题 更多 >