对for循环中的字符串列表进行更改

2024-05-13 20:24:30 发布

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

我有一个看起来像这样的列表["first letter", " second letter", " third letter"]在某些情况下,第一个字符是空字符“”。在这些情况下,我希望去掉第一个字符并修改我的列表,如下所示:

["first letter", "second letter", "third letter"]

我怎样才能做到这一点?这不起作用,因为我没有修改字符串本身,并且每个字符串中可以有超过1“”个字符。我只想删除第一个

    for i in setOfCoordinates:
        if i[0] == ' ':
            print('space found')
            i.replace(" ", "")

我不想删除所有空格,只想删除第一个空格


Tags: 字符串in列表forif情况字符first
3条回答

试试这个。使用enumerate。而且,replace不是一个就地函数。它将返回替换的字符串。因此,可以使用字符串连接i[0]+i[1:]连接字符串

l=["first letter", " second letter", " third letter"]
for j,i in enumerate(l):
    if i[0]==" ":
        print("Space found")
        l[j]=i[0].replace(" ",'')+i[1:]
        print("Space removed")
print(l)

输出:

Space found
Space removed
Space found
Space removed
['first letter', 'second letter', 'third letter']

只需使用replace函数的count参数:https://docs.python.org/3/library/stdtypes.html#str.replace

就你而言:

i.replace(" ", "", 1)

仅替换" "的1个匹配项

要修改列表中的字符串,请使用它们的索引(归功于@Sujay answer)

l = ["first letter", " second letter", " third letter"]
for j, i in enumerate(l):
    if i[0] == " ":
        print("Space found")
        l[j] = l[j].replace(" ", "",1)
print(l)
my =  ["first letter", " second letter", " third letter"]
for i in range(0,len(my),1):
    if my[i][0] == " " :
        my[i] = my[i][1:]
print(my)

# result : ['first letter', 'second letter', 'third letter']

我使用了“for”函数。之后,通过“Slice”,如果前面是空的,字符串将被截断

相关问题 更多 >