我只是一个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看不到oldx
和x
之间的区别,所以我也不明白这句话: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:])]