Python字符串操作将字符从一个位置移动到另一个位置

2024-06-28 15:35:59 发布

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

我不太清楚为什么这是不工作,但它应该移动到右边的C如果。在它的右边。这似乎根本没有改变城市的脉络

import time
city = 'C................R..................'


position = (city.index('C'))

for i in city:
    time.sleep(1)
    if city[position+1] == '.':

        city[position].replace('C','.')
        city[position+1].replace('.','C')

    position = (city.index('C'))

    print(city)

Tags: inimportcityforindexiftimeposition
3条回答

是的,就像@Ruzihm和@Mark Meyer提到的,字符串的字符不能像列表一样被替换。必须先将其转换为列表

但是说到你要解决的问题,我想知道为什么你不能简单地这样写,如果你想要的是把“C”的存在变成“.C”。还是我误解了什么

city = 'C................R................C..C'

city = city.replace('C.', '.C')
print(city)
# should output: .C...............R.................C.C

string.replace不会就地更改字符串。在python中字符串是不可变的这一事实之间,我建议使用city作为列表,只对要更改的字符/字符串进行索引和赋值

可以使用''.join(city)将列表转换为字符串以进行打印

总共:

import time
city = 'C................R..................'
city = list(city)


position = city.index('C')

for i in city:
    time.sleep(1)

    if city[position+1] == '.':
        city[position] = '.'
        city[position+1] = 'C'

    position = city.index('C')
    print(''.join(city))

如果你想加入CR,那么这个编辑会很有帮助

import time
city = 'C................R..................'

position_C = 0

for i in city:
    time.sleep(1)
    l_city = list(city)
    if l_city[position_C+1] == '.':
        l_city[position_C]="."
        l_city[position_C+1]='C'

        city=''.join(l_city)

    position_C = (city.index('C'))

    print(city)

如果你想超越R,告诉我我会帮你的。 如果你得到了你想要的,就把答案标记为接受

相关问题 更多 >