【问题标题】:Replace Index Number with New Customised Serial No用新的自定义序列号替换索引号
【发布时间】:2019-12-22 21:44:22
【问题描述】:

我想用一个新的自定义序列号替换当前列表项的索引号

我有一个包含不同变量的列表,它们使用下面的代码进行索引

list_a = ["alpha","beta","romeo","nano","charlie"]

for idx, val in enumerate(list_a, start=1):

print("index number for %s is %d" % (val, idx))

这给了我以下结果。

index number for alpha is 1
index number for beta is 2
index number for romeo is 3
index number for nano is 4
index number for charlie is 5    

现在我想用下面的自定义列表替换上面的索引号从 1 到 5

index number for alpha is 1Red
index number for beta is 2Blue
index number for romeo is 3Purple
index number for nano is 4Red
index number for charlie is 5Blue

在此先感谢您的帮助和非常感谢。

【问题讨论】:

  • 新建序列号的规则是什么?
  • 没有规定,我有名字想换成上面提到的序列号

标签: python arrays list indexing str-replace


【解决方案1】:

如果我了解您想按特定顺序替换 list_a 的值并且没有逻辑/规则,对吧?

所以你可以用很多方法来做,但如果这样做你会从 list_a 中丢失你的日期,所以我会告诉你另外两种方法来解决这个问题,好吗?!

for的第一种方式:

list_a = ["alpha","beta","romeo","nano","charlie"]
cust_list = ['Red', 'Blue', 'Purple', 'Red', 'Blue'] #create a new list

#Create your logical by for
for id_a, id_b, i in zip(list_a, cust_list, range(5)):
    cust_list[i] = str(i+1)+id_b

#Make some changes in your code and run it
for idx, val in enumerate(list_a, start=1):
    print("index number for %s is %s" % (val, cust_list[idx-1]))

列表理解for的第二种方式:

list_a = ["alpha","beta","romeo","nano","charlie"]
cust_list = ['Red', 'Blue', 'Purple', 'Red', 'Blue'] #create a new list

#adding new items by list comprehension
[cust_list.insert(i,str(i+1)+cust_list[i]) for i in range(len(list_a))]
#deleting old items
for i in range(5):
    del cust_list[-1]

#Make some changes in your code and run it
for idx, val in enumerate(list_a, start=1):
    print("index number for %s is %s" % (val, cust_list[idx-1]))

您的新数据存储在cust_list,您可以通过print(cust_list)查看。

【讨论】:

  • 非常感谢,它成功了,我做了些微调整。不想要数字所以删除了位“str(i + 1)”。非常感谢您的帮助
  • 只是添加另一层......例如,如果 list_a 中的项目是人,我想向他们发送电子邮件,通知他们新的索引号(假设我有他们的电子邮件)
  • 对于这种情况,如果我是你,我会使用dictionary 而不是list,这样更容易处理。
  • 是的,这就是我所做的,我创建了一个名称与电子邮件地址的字典,挑战在于如何与上述索引功能集成,以便获取正确的电子邮件地址。尝试了不同的方法,但无法链接索引结果并拉出电子邮件。谢谢
  • NameEmail = { "Ale": "Ale@gmail.com", "Dav": "Dav@gmail.com", "Abe": "Abe@gmail.com", "And" : "And@gmail.com", "Andr": "Andr@gmail.com"'' } for i in NameEmail: print(NameEmail.get(i))
猜你喜欢
  • 2012-03-11
  • 2011-05-11
  • 2017-08-05
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 2011-06-09
  • 2021-08-12
  • 1970-01-01
相关资源
最近更新 更多