我刚刚做了你所做的,我利用了列表中每个元素都可以被赋予新值(或更新)的事实:
>>> lst1 = [["(a)", "(b)", "(c)"],["(d)", "(e)", "(f)", "(g)"]]
>>> for x in range(len(lst1)):
for y in range(len(lst1[x])):
lst1[x][y] = lst1[x][y].replace("(", "")
>>> lst1
[['a)', 'b)', 'c)'], ['d)', 'e)', 'f)', 'g)']]
编辑
这是你在评论中提到的“真正问题”的解决方法:
a = [[(12.22, 12.122, 0.000)], [(1232.11, 123.1231, 0.000)]]
some_num = 10
for x in range(len(a)):
b = list(a[x][0])
for y in range(len(b)):
b[y] *= some_num
a[x] = tuple(b)
print(a)
输出:
[(122.2, 121.22, 0.0), (12321.099999999999, 1231.231, 0.0)]
所有元素都乘以一个数字,并保留原始格式
它是这样工作的:
所以你有最初的列表'a',其中有两个子列表,每个子列表只有一个元素(包含x、y、z坐标的元组)。我遍历列表'a',将元组转换为列表并将它们设置为'b'(因此第四行在第一次循环时具有值[12.22、12.122、0.000](下一个元组(作为列表)在下一次循环中)。
然后,我遍历'b'中的每个元素(将元组转换为列表),并使用增量运算符(+=、-=、/=、*=)将该元组中的每个元素乘以一个数字。一旦完成此循环,我将主列表'a'中的相同位置设置为先前转换的元组的元组。 <如果这不合理,我的意思是将初始元组转换为列表(然后进行操作),然后再将其转换回元组(因为您希望它最终具有与之前相同的格式)。
希望这可以帮助!