Python 如何将列表中的一个数字更改为另一个数字
如何在不知道号码所在位置的情况下更改列表中的号码?例如,如果我有:Python 如何将列表中的一个数字更改为另一个数字,python,Python,如何在不知道号码所在位置的情况下更改列表中的号码?例如,如果我有: number=[11,2,3,4,5,6,7,8,9,10,10,10] 假设我想将数字11更改为1,但我不知道11位于位置0 我不想做这样的事情 if 11 in numbers: number[11] = 1 因为这会把数字10变成1。 因此,无论11在列表中的哪个位置,它都将替换为1 上面的代码基本上是检查列表中是否有11,如果有,它将替换为1。遍历列表的索引: numbers = [x if x is not
number=[11,2,3,4,5,6,7,8,9,10,10,10]
假设我想将数字11更改为1,但我不知道11位于位置0
我不想做这样的事情
if 11 in numbers:
number[11] = 1
因为这会把数字10变成1。
因此,无论11在列表中的哪个位置,它都将替换为1
上面的代码基本上是检查列表中是否有11,如果有,它将替换为1。遍历列表的索引:
numbers = [x if x is not 11 else 1 for x in numbers]
numbers = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
for i in range(len(numbers)):
if numbers[i] == 11:
numbers[i] = 1
print(numbers)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
使用
索引方法列出对象
numbers[numbers.index(11)] = 1
如果11
不在numbers
中,它将失败。
它将只替换第一个出现的元素。number[11]
是列表中的第12个(由于基于0的索引)元素,而不是碰巧具有值11
的元素(如果有)。是的,我知道这一点。我试图找出如何将值11更改为1。不管它处于什么位置。那么你是在问“我如何在列表中找到一个值的索引?”如果是,你是否尝试过任何研究来解决这个问题?最初,我没有想到要找到该值的索引。我确实做过研究,但我用了错误的问题来寻找。虽然我很感激有人给了我想要的答案。这是一个全新的列表。OP似乎要求更改首字母list@OneCricketeer,但这个新的列表将取代以前的列表,有什么问题吗?像家庭作业一样?:)@OneCricketeer@Olvin根据空间要求,分配不必要的空间memory@OneCricketeer,为了不分配额外的内存,您可以使用numbers[:]=(如果x不是11,则x为1,否则x为1)
@OlvinRoght是的,您可以用一千种不同的方法来分配。有一千种方法可以做到这一点,但似乎是最快的解决方案,具有