例如,我将如何定义一个函数,以便列表中的每个奇数都被字符串'odd'替换?由于如何用python中的字符串替换列表中的整数?
list = [10 , 11, 12, 13, 14, 15, 16,]
预期的结果
[10, 'odd', 12, 'odd', 14, 'odd', 16]
例如,我将如何定义一个函数,以便列表中的每个奇数都被字符串'odd'替换?由于如何用python中的字符串替换列表中的整数?
list = [10 , 11, 12, 13, 14, 15, 16,]
预期的结果
[10, 'odd', 12, 'odd', 14, 'odd', 16]
for i in range(len (list)):
if (list[i] % 2 != 0):
list[i] = "odd"
0到range的第一个参数可以省略。也就是说,通常只是写'range(len(list))'。 –
好的。我有一段时间没有用过python。我现在要改变它 –
最好在枚举(列表)中为'i,x:如果x%2:list [i] ='odd'' – dawg
您可以使用列表理解:
list = [10 , 11, 12, 13, 14, 15, 16]
new_list = [i if i % 2 == 0 else "odd" for i in list]
这里是它如何工作的一个很好的例子:if/else in Python's list comprehension?
从技术上讲,这不是OP要求的。 OP要求替换列表中的奇怪元素,而不是生成一个替换奇怪元素的新列表。这对OP是否重要尚不清楚,但它确实创建了一个新的清单。 –
你可以做'list [:] = ...'而不是'new_list = ...'你不应该使用'list'作为变量名,因为它会影响内置类型。你也可以''“奇数”如果我%2其他我为我在列表中]' – zondo
我觉得你应该是可能的Ÿ得到解决你自己的,但无论如何...
result = []
for i in list:
if i % 2 != 0:
result.append('odd')
else:
result.append(i)
或者,也许事情向前推动你:
def turn_odd(i):
if i % 2 != 0:
return 'odd'
else:
return i
list = [10 , 11, 12, 13, 14, 15, 16,]
result = map(lambda x: turn_odd(x), list)
首先请注意list
是为Python中的类型列表保留的,所以我将使用my_list
来代替。然后,你有三种选择:
与条件
for i in range(0, len(my_list)):
if (i % 2 != 0):
my_list[i] = "odd"
列表理解环路(相同的逻辑如上)
my_list = ["odd" if i % 2 != 0 else my_list[i] for i in range(len(my_list))]
环路没有条件
for i in range(1, len(my_list), 2):
my_list[i] = "odd"
谢谢 - 编辑。 –
你有没有读过关于循环和条件? – Reti43
注意:请不要将变量命名为与内置Python相同的变量。在这种情况下,'list'然后掩盖内置函数'list(iterator)' – dawg