我只是 python 的初学者,我必须在它的基础上做我的第一个练习,我也有它们的解决方案,但是尽管我在理解其中的一些、语句和一些命令行中的函数时遇到了问题。
这是练习之一:创建一个名为 mixlist 的新空列表。这个新列表将包含颜色列表中两种相邻颜色的颜色混合。颜色列表中的前两种颜色是“红色”和“黄色”。因此,混合列表中的第一项将是“红黄色”(红色和黄色的混合)。注意“_”字符。制作一个循环,自动填充混合列表。最后,键入 mixlist 以查看结果。如果结果错误,您必须更正程序。
这是答案:
colourList = ['red', 'yellow', 'green', 'white']
mixList = []
count = 0
oldx = " "
for x in colourList:
if count > 0:
print oldx + "_" + x
mixList.append(oldx + "_" + x)
oldx = x
count += 1
print mixList
我不明白其中的大部分内容,例如,oldx
是什么,为什么它表示空白 ""
在开头然后在结尾是 = x
所以 R 看不到 oldx
和 x
之间的区别所以我也没有得到这个语句:oldx + "_"+ x
我很困惑,我需要一些帮助......
在此先感谢大家的帮助
最佳答案
请注意,“答案”太复杂了。一种更简单的算法,具有更好的命名并摆脱了无用的“计数”变量:
colourList = ['red', 'yellow', 'green', 'white']
mixList = []
prev_colour = None
for current_colour in colourList:
if prev_colour is not None:
mix = prev_colour + "_" + current_colour
print mix
mixList.append(mix)
prev_colour = current_colour
print mixList
虽然这可能是最好的“cs 101”版本,但 pythonic 版本是单行代码:
mixList = ["%s_%s" % pair for pair in zip(colourList, colourList[1:])]
关于python - python中的循环和分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19544589/