返回对象的名称None为list.reverse().所以这个代码在我打电话时失败了solution(k).我有什么方法可以绕过临时的吗?或者我应该怎么做?
fCamel = 'F'
bCamel = 'B'
gap = ' '
k = ['F', ' ', 'B', 'F']
def solution(formation):
return ((formation.index(bCamel) > (len(formation) - 1 - (formation.reverse()).index(fCamel))))
Run Code Online (Sandbox Code Playgroud)
ps这是我在python中的第一个代码.我觉得它很实用.
老实说,我只是不明白为什么会返回None而不是反向列表:
>>> l = range(10)
>>> print l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print l.reverse()
None
Run Code Online (Sandbox Code Playgroud)
为什么会这样?根据文件,我没有做错任何事.
我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.
请注意,我不是在抱怨(我敢肯定有是一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.
我使用两种不同的方法来创建反向列表.
第一种方式:
>>> a=list(range(3))
>>> a.reverse()
>>> print(a)
[2,1,0]
Run Code Online (Sandbox Code Playgroud)
第二种方式:
>>> a=list(range(3)).reverse()
>>> print(a)
None
Run Code Online (Sandbox Code Playgroud)
为什么第二种方法不起作用?感谢您的帮助.
我想知道是否有人可以帮助我解开这个谜团。当我运行我的程序时,它显示错误。
类型错误:“NoneType”对象不可迭代
我已经测试过我尝试迭代的变量是一个列表,但它仍然说它无效并显示相同的错误。
我的代码意味着打印一个对称的星号三角形:
def iterat(num):
for x in num:
yield x
number=int(input("Enter Positive Number: "))
stars = list(range(number))
print(type(stars))
spaces = stars.reverse()
yeildStar = iterat(stars)
yeildSpace = iterat(spaces)
for star,space in zip(yeildStar,yeildSpace):
print(" "*(space)+"*"*((star*2)-1))
Run Code Online (Sandbox Code Playgroud)
非常感谢。抱歉变量名不好
编辑; 感谢您的帮助。
spaces = reversed(stars)
Run Code Online (Sandbox Code Playgroud)
工作完美