Python 熟能生巧
嘿:)我是python的新手,我想知道如何从返回输出中删除方括号。我收到一个错误,请重试。中位数([1])返回的是[1],而不是1。如何删除这些方括号?代码的其余部分正常还是需要更改? 这是我的代码:Python 熟能生巧,python,python-2.7,Python,Python 2.7,嘿:)我是python的新手,我想知道如何从返回输出中删除方括号。我收到一个错误,请重试。中位数([1])返回的是[1],而不是1。如何删除这些方括号?代码的其余部分正常还是需要更改? 这是我的代码: def median(List): newlist = [] for num in List: newlist.append(num) return newlist newlist.sort() if len(newlist) % 2 ==
def median(List):
newlist = []
for num in List:
newlist.append(num)
return newlist
newlist.sort()
if len(newlist) % 2 == 1:
return float(newlist[len(newlist) / 2])
else:
return float((newlist[len(newlist) / 2] + newlist[len(newlist) / 2 + 1])) / 2.0
删除此行:
return newlist
这意味着返回列表的副本,然后不执行函数的其余部分
编辑
当前代码的一个大问题是,当数组长度为偶数时,您选择了错误的索引。(对于长度为4的数组,您将平均元素2和3,而您应该平均元素1和2。)
还有几个小建议:
排序(…)
获取列表的排序副本/
进行整数除法,这样您的代码就可以在Python 3(以及Python 2)中正常工作def median(lst):
new_list = sorted(lst)
if len(new_list) % 2 == 1:
return float(new_list[len(new_list) // 2])
else:
return (new_list[len(new_list) // 2 - 1] +
new_list[len(new_list) // 2]) / 2.0
删除此行:
return newlist
这意味着返回列表的副本,然后不执行函数的其余部分
编辑
当前代码的一个大问题是,当数组长度为偶数时,您选择了错误的索引。(对于长度为4的数组,您将平均元素2和3,而您应该平均元素1和2。)
还有几个小建议:
排序(…)
获取列表的排序副本/
进行整数除法,这样您的代码就可以在Python 3(以及Python 2)中正常工作def median(lst):
new_list = sorted(lst)
if len(new_list) % 2 == 1:
return float(new_list[len(new_list) // 2])
else:
return (new_list[len(new_list) // 2 - 1] +
new_list[len(new_list) // 2]) / 2.0
感谢您快速准确的回复!关于您的答案的这一部分,还有一个问题:“(对于长度为4的数组,您计算的是元素2和3的平均值,而您应该计算元素1和2的平均值)。”。我应该平均元素1和2,因为列表中的索引和字符串中的索引完全相同,对吗?如果我有这样的东西:lst=[2,4,7,10],我的意思是我列表中的第一个整数有索引0,对吗?实际上,关于你的建议还有一点,为什么使用“蛇壳”如此重要?别误会,我只是好奇;)确切地说,数组索引从0开始。Snake-case只是Python社区的样式约定。使用它将使其他Python开发人员更容易阅读您的代码。好的,谢谢您的回答:)哪门Python课程,您建议我在完成课程后开始学习?@Konradek抱歉,不知道。。。从我第一次学习到现在已经有很长时间了。:-)感谢您快速准确的回复!关于您的答案的这一部分,还有一个问题:“(对于长度为4的数组,您计算的是元素2和3的平均值,而您应该计算元素1和2的平均值)。”。我应该平均元素1和2,因为列表中的索引和字符串中的索引完全相同,对吗?如果我有这样的东西:lst=[2,4,7,10],我的意思是我列表中的第一个整数有索引0,对吗?实际上,关于你的建议还有一点,为什么使用“蛇壳”如此重要?别误会,我只是好奇;)确切地说,数组索引从0开始。Snake-case只是Python社区的样式约定。使用它将使其他Python开发人员更容易阅读您的代码。好的,谢谢您的回答:)哪门Python课程,您建议我在完成课程后开始学习?@Konradek抱歉,不知道。。。从我第一次学习到现在已经有很长时间了。:-)