我已经能够验证findUniqueWords确实导致排序list.然而,它没有findUniqueWords了list,为什么呢?
def findUniqueWords(theList):
newList = []
words = []
# Read a line at a time
for item in theList:
# Remove any punctuation from the line
cleaned = cleanUp(item)
# Split the line into separate words
words = cleaned.split()
# Evaluate each word
for word in words:
# Count each unique word
if word not in newList:
newList.append(word)
answer = newList.sort()
return answer
Run Code Online (Sandbox Code Playgroud) 我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.
请注意,我不是在抱怨(我敢肯定有是一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.
我尝试从字符串中排序一个数字序列:
在python解释器中:
>>> mystr = '1,2,3,4,5'
>>> a = mystr.split(',')
>>> a
['1', '2', '3', '4', '5']
>>> a.sort(reverse=True)
>>> a
['5', '4', '3', '2', '1']
Run Code Online (Sandbox Code Playgroud)
但是当我想缩短代码时,会出现问题:
>>> mystr
'1,2,3,4,5'
>>> print mystr.split(',').sort(reverse=True)
None
Run Code Online (Sandbox Code Playgroud)
为什么会这样?希望得到你的帮助!
为什么要执行以下操作:
print([7,1,0].sort())
Run Code Online (Sandbox Code Playgroud)
产生:
None
Run Code Online (Sandbox Code Playgroud)
执行以下命令时:
a = [7,1,0]
a.sort()
print(a)
Run Code Online (Sandbox Code Playgroud)
产生:
[0, 1, 7]
Run Code Online (Sandbox Code Playgroud)
?
这是代码,它非常简单,它看起来像很多代码:
from collections import namedtuple
# make a basic Link class
Link = namedtuple('Link', ['id', 'submitter_id', 'submitted_time', 'votes',
'title', 'url'])
# list of Links to work with
links = [
Link(0, 60398, 1334014208.0, 109,
"C overtakes Java as the No. 1 programming language in the TIOBE index.",
"http://pixelstech.net/article/index.php?id=1333969280"),
Link(1, 60254, 1333962645.0, 891,
"This explains why technical books are all ridiculously thick and overpriced",
"http://prog21.dadgum.com/65.html"),
Link(23, 62945, 1333894106.0, 351,
"Learn Haskell Fast and Hard",
"http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/"),
Link(2, 6084, 1333996166.0, 81,
"Announcing Yesod …Run Code Online (Sandbox Code Playgroud) 我在python中尝试了这个代码,它完美地工作:
listX.sort()
list1.sort()
result = listX + list1
Run Code Online (Sandbox Code Playgroud)
但以下代码不起作用:
result = listX.sort() + list1.sort()
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误信息:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?谢谢!
我是Python的初学者,我试图让下面发布的Python代码工作但不幸的是,它没有给我预期或正确的结果.
我试图使用内置方法sort()对包含数字的简单列表进行排序,并且在执行程序后,我得到NONE作为结果.
请指导我解决这个问题.
Python代码
a=[7,4,0,-5,30,2,11,84,6]
b=a.sort()
print(b)
Run Code Online (Sandbox Code Playgroud) 我目前正在学习如何编写python 2.7代码但是我在下面的代码中遇到了一个令人困惑的错误,它尝试(假设效率非常低)返回输入的中位数.
def median(lst):
lst = lst.sort()
median = 0
if len(lst) == 1:
median = lst[0]
elif len(lst) % 2 == 0:
median_sum = lst[len(lst) / 2 - 1] + lst[len(lst) / 2 + 1]
median = median_sum / 2.0
else:
median = lst[len(lst)/ 2 - 1]
return median
print median([1])
Run Code Online (Sandbox Code Playgroud)
上面是我的代码,它不断给我以下错误:
Traceback (most recent call last):
File "C:/Python27/SAVED DOCS/test3.py", line 16, in <module>
print median([1])
File "C:/Python27/SAVED DOCS/test3.py", line 6, in median
if len(lst) == 1:
TypeError: object …Run Code Online (Sandbox Code Playgroud) 我正在尝试对列表进行排序:
x=['1', '3']
Run Code Online (Sandbox Code Playgroud)
使用 x.sort()
我希望它按升序排序,但是当我打印出结果时,我得到“无”
x=['1', '3']
r=x.sort()
print(r)
Run Code Online (Sandbox Code Playgroud)