我只是一个python的初学者,我必须在它的基础上做我的第一个练习,我也有他们的解决方案,但是尽管我在理解其中的一些方面有问题,一些命令行的语句和函数。
这是练习之一:创建一个名为mixlist的新空列表。此新列表将包含颜色列表中两个相邻颜色的混合颜色。颜色列表中的前两种颜色是“红色”和“黄色”。因此,mixlist中的第一项将是“红黄”(红黄的混合物)。注意“\u”字符。创建一个循环,自动填充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看不到oldxx之间的区别,所以我也不明白这句话:oldx + "_" + x
我很困惑,我需要一些帮助。。。
感谢大家的帮助

最佳答案

请注意,“答案”是毫无用处的复杂。一种更简单的算法,具有更好的命名,并去掉无用的“count”变量:

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:])]

10-06 02:12