【问题标题】:How to replace variable in string in a list [duplicate]如何替换列表中字符串中的变量[重复]
【发布时间】:2020-06-24 12:43:53
【问题描述】:

我在下面有一个名为 x 的列表,我想用整数 1 替换“>”(在 x[0][0] 中)。

x = [">000#","#0#00","00#0#"]

我尝试了x[0][0] = 1,但它给了我一个错误。

另外,我可以让x[0][2] 变成一个整数,这样 x[0][2] += 1 变成这样: x = ["1010#","#0#00","00#0#"]

【问题讨论】:

  • 这能回答你的问题吗? Changing one character in a string in Python
  • 不,我想知道它是否可以使每个单独的变量成为整数来进行加法
  • 你可能想考虑将这些字符串中的每一个转换成一个列表。
  • 好的我去试试

标签: python


【解决方案1】:

你可以试试

 x[0]=x[0].replace(">","1")

字符串是不可变的,所以不能像列表一样改变。

或者您可以转换为列表。

x[0]=list(x[0])
x[0][0]="1"
x[0][2]=str(int(x[0][2])+1)
x[0]="".join(x[0])

【讨论】:

  • 但我不能编辑单个变量?例如,我想这样做:x[0][2] += 1 这样它就变成了:x = ["1010#","#0#00","00#0#"]
  • @SomeRandomPersonD 检查编辑
【解决方案2】:

Python 字符串是不可变的;你不能改变它们的内容。相反,您需要从旧字符串中创建一个新字符串并将其分配给x[0]

x = [">000#","#0#00","00#0#"]
# change the first character to a '1'
x[0] = '1' + x[0][1:]
# add 1 to the third character
x[0] = x[0][:2] + str(int(x[0][2]) + 1) + x[0][3:]
print(x)

输出:

['1010#', '#0#00', '00#0#']

【讨论】:

  • SomeRandomPersonD 请看我的编辑,它也解决了你问题的第二部分
猜你喜欢
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 2015-12-21
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
相关资源
最近更新 更多