Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列表理解中附加到列表_Python_List - Fatal编程技术网

Python 在列表理解中附加到列表

Python 在列表理解中附加到列表,python,list,Python,List,我试图得到一个列表和浮动的最小值,我有下面的代码,但它给出了错误 x=['14.99', '14.99', '15.00', '16.36'] y=21.00 min([float(i) for i in x.append(y)]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'NoneType' object is not iterable #x=

我试图得到一个列表和浮动的最小值,我有下面的代码,但它给出了错误

x=['14.99', '14.99', '15.00', '16.36']
y=21.00
min([float(i) for i in x.append(y)])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable
#x= ['14.99', '14.99', '15.00', '16.36', 21.0] y got appended  
输出为:14.99#正确


我怎么能在一行中做到这一点呢?

在我看来这很难看,但你可以这样做:

min([float(i) for i in x+[y])])

我认为这很难看,但你可以这样做:

min([float(i) for i in x+[y])])
这将
y
作为一个列表连接到
x
列表,然后查找所有列表的最小值

这将
y
作为一个列表连接到
x
列表,然后查找所有列表的最小值

请参阅。

试试这个

min(y, min([float(i) for i in x]))
或者这个更具可读性

min(y, min(map(float, x)))
基本上,您可以将浮动y与列表中的最小值进行比较。

试试这个

min(y, min([float(i) for i in x]))
或者这个更具可读性

min(y, min(map(float, x)))

基本上,您可以将浮点y与列表中的最小值进行比较。

list.append()
始终返回
None
,如果这是您所要求的,则与大多数其他列表操作方法相同。@MikeScotty不是x的iterable?是的,但这不是重点。您正在尝试迭代
x.append(y)
的返回值,它是
None
@MikeScotty那么我怎样才能在一行中执行此操作呢?
list.append()
始终返回
None
,如果这是您要问的,与大多数其他列表操作方法一样。@MikeScotty不是一个可编辑的对象?是的,但这不是重点。您正在尝试迭代
x.append(y)
的返回值,它是
None
@MikeScotty那么我如何在一行中执行此操作?什么是外观更好的方法“外观更好的方法”是如何保留您的原始代码。它更具可读性,甚至应该更有效(附加到现有对象,而不是创建一个新对象,或者说两个新对象,因为您首先从
y
创建一个新列表,然后从
x
[y]
创建另一个新列表)。我将使用两行来明确说明:
\u list=[float(I)for I in x]+[y]
然后
min(\u列表)
。如果你不在乎重写x,那么你发布的代码就是最好的。什么是更好看的方法。它更具可读性,甚至应该更有效(附加到现有对象,而不是创建一个新对象,或者说两个新对象,因为您首先从
y
创建一个新列表,然后从
x
[y]
创建另一个新列表)。我将使用两行来明确说明:
\u list=[float(I)for I in x]+[y]
然后
min(\u列表)
。如果你不介意重写x,那么你发布的代码是最好的。我想要5项中的最少项,而不是list@programmerwiz32这些将给出至少5项。您可以通过设置y=11进行检查,例如,它将给出11。我想要5项中的最小值,而不是list@programmerwiz32这些将给出至少5项。您可以通过设置y=11进行检查,例如,它将给出11。