繁体   English   中英

Python3:更改列表中项目的一个字符

[英]Python3: Change one character of item in list

我有一个这样的清单:

['ID|number1|number2|+|name|location','ID2|number3|number4|-|name2|location2']

该列表是从字典生成的,并且包含字典的键。 我想更改第一个“ |” 变成'='。

我尝试了这个:

keyList=[]
for item in finalDict.keys():
    keyList.append(item)

z=0
for item in keyList:
    for letter in item:
        if letter=='|':
            z+=1
            if z==1:
                letter.replace('|', '=')

但是我没有收到错误或期望的输出

Actual output:
    ['ID|number1|number2|+|name|location','ID2|number3|number4|-|name2|location2']


Desired output:
    ['ID=number1|number2|+|name|location','ID2=number3|number4|-|name2|location2']

更改第一个“ |” 变成'='

用简单的方式:

keyList = ['ID|number1|number2|+|name|location','ID2|number3|number4|-|name2|location2']
result = [k.replace('|', '=', 1) for k in keyList]

print(result)

输出:

['ID=number1|number2|+|name|location', 'ID2=number3|number4|-|name2|location2']

  • str.replace(old, new[, count]) -如果给出了可选的参数count ,则仅替换第一个出现的计数。
l=['ID|number1|number2|+|name|location','ID2|number3|number4|-|name2|location2']

j=[]
for i in l:
    i=i.replace("|","=",1)
    j.append(i)

print(j)

输出量

['ID=number1|number2|+|name|location', 'ID2=number3|number4|-|name2|location2']

使用列表综合+正则表达式

import re 
theList=['ID|number1|number2|+|name|location','ID2|number3|number4|-|name2|location2']

print [ re.sub(r'(ID.?)\|',r'\1=',item) for item in theList]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM