python - 用新的自定义序列号替换索引号
问题描述
我想用新的自定义序列号替换列表项的当前索引号
我有一个包含不同变量的列表,它们使用下面的代码进行索引
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
感谢您的帮助,并在此先感谢您。
解决方案
如果我了解您想list_a
按特定顺序替换您的值并且没有逻辑/规则,对吗?
所以你可以通过很多方式做到这一点,但如果这样做你会从 list_a 中丢失你的日期,所以我将向你展示另外两种解决这个问题的方法,好吗?!
第一种方式:
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)
.
推荐阅读
- python - 一篇文章如何在 django 上有作者?
- java - 如何将两个单词的常用字母大写?
- qooxdoo - 关于 qooxdoo 的一般问题
- ios - 重用具有不同视图模型类型的 UITableView
- r - 如何“映射”或“应用”以从每一列中获得最佳测试版
- node.js - 如何在猫鼬查询中连接多个字段?
- sqlalchemy - 如何抑制极长的 sqlalchemy 错误?
- android - Android:找不到 jetifier 处理器库。无法解析配置“:classpath”的所有工件
- php - Laravel 数组元素验证
- php - 尝试上传图像时,请收到此错误 fileUpload() must be an instance of Illuminate\Http\Request