S A*_*rew 4 python tuples list
我有一个元组列表:
my_list =
[(0.12497007846832275, 0.37186527252197266, 0.9681450128555298, 0.5542989373207092),
(0.18757864832878113, 0.6171307563781738, 0.8482183218002319, 0.8088157176971436),
(0.06923380494117737, 0.2164008915424347, 0.991775393486023, 0.41364166140556335)]
Run Code Online (Sandbox Code Playgroud)
我想将每个值乘以100,然后以相同的顺序重新分配它们.但是在下面,它会抛出错误:
for i in range(len(my_list)):
for j in range(4):
my_list[i][j] = 100 * my_list[i][j]
Run Code Online (Sandbox Code Playgroud)
TypeError: 'tuple' object does not support item assignment
如何修改这些值并将其保存在自己的位置?谢谢
如果您阅读文档,您将了解元组是不可变的(与列表不同),因此您无法更改元组的值.
使用列表理解:
my_list = [(0.12497007846832275, 0.37186527252197266, 0.9681450128555298, 0.5542989373207092),
(0.18757864832878113, 0.6171307563781738, 0.8482183218002319, 0.8088157176971436),
(0.06923380494117737, 0.2164008915424347, 0.991775393486023, 0.41364166140556335)]
my_list = [tuple(y * 100 for y in x ) for x in my_list]
# [(12.497007846832275, 37.186527252197266, 96.814501285552979, 55.429893732070923),
# (18.757864832878113, 61.713075637817383, 84.821832180023193, 80.881571769714355),
# (6.9233804941177368, 21.640089154243469, 99.177539348602295, 41.364166140556335)]
Run Code Online (Sandbox Code Playgroud)