2 回答
TA贡献2041条经验 获得超4个赞
由于您是 Python 的新手,我不想让答案复杂化。
为了让您开始了解一些基础知识,这里有一种查看解决方案的方法。
您可以使用 if 语句来检查您想要的每个值。然后用新值替换该值。
#you want to iterate through list1 and for each value in list1,
#you want to check if it meets your criteria
#since you need the index and value, use enumerate
for i,val in enumerate(list1):
#if value is 'steel' you want to replace with 'MCSTEL'
if list1[i].lower() == 'steel':
list1[i] = 'MCSTEL'
print (list1)
如果要替换的项目不止一项,则可以有多个 if 语句。
#you want to iterate through list1 and for each value in list1,
#you want to check if it meets your criteria
#since you need the index and value, use enumerate
for i,val in enumerate(list1):
#if value is 'Steel' you want to replace with 'MCSTEL'
if val.lower() == 'steel':
list1[i] = 'MCSTEL'
#if value is 'ReinfSteel' you want to replace with 'REINFO'
if val.lower() == 'reinfsteel':
list1[i] = 'REINFO'
如果您熟悉字典,则可以使用字典来遍历列表。
首先你需要定义字典。然后遍历列表以将与字典中的键匹配的每个元素替换为字典中的值。
#define your dictionary with key value pairs
#key is the value you want to search in list1
#value is the new value you want to store
d = {'steel':'MCSTEL','reinfsteel':'REINFO'}
#you want to iterate through list1 and for each value in list1,
#you want to check if it meets your criteria
#since you need the index and value, use enumerate
for i,val in enumerate(list1):
#check against the keys in the dictionary
if val.lower() in d.keys():
list1[i] = d[val.lower()]
如果你了解 python 中的列表理解,那么你可以将上面的循环写在一个语句中:
list2 = [d[x.lower()] if x.lower() in d.keys() else x for x in list1]
任何一个代码都将替换:
['Steel', 'ReinfSteel', 'Concrete', 'Wood', 'Aluminium']
到
['MCSTEL', 'REINFO', 'Concrete', 'Wood', 'Aluminium']
TA贡献1835条经验 获得超7个赞
dict
您可以为要交换的内容创建一个键值对,然后使用列表理解来创建新列表。下面是一个只有钢的例子。
d = {"Steel": "MCSTEL"} new_list = [d[i] if i in d else i for i in List1]
"Concrete": "CONCR"
如果您想包含其他内容,例如“Concrete”和“CONCR”,您可以在字典中包含键值对d
。
添加回答
举报