Python 如何从一个列表返回两个单独的列表?
如果您在此处有此列表:Python 如何从一个列表返回两个单独的列表?,python,Python,如果您在此处有此列表: [25, 8, 22, 9] 我如何让程序创建两个单独的列表,并同时打印它们?一个应该包含所有小于20的数字,另一个需要包含所有大于20的数字。最终打印结果应如下所示:[8,9],[25,22] a = [25, 8, 22, 9] print [x for x in a if x > 20] print [x for x in a if x < 20] 这意味着:为该cond(x)为True的x的每个元素生成一个包含f(x)的列表 在我们的例子中,
[25, 8, 22, 9]
我如何让程序创建两个单独的列表,并同时打印它们?一个应该包含所有小于20的数字,另一个需要包含所有大于20的数字。最终打印结果应如下所示:[8,9]
,[25,22]
a = [25, 8, 22, 9]
print [x for x in a if x > 20]
print [x for x in a if x < 20]
这意味着:为该cond(x)
为True
的x
的每个元素生成一个包含f(x)
的列表
在我们的例子中,f(x)
只是x
。而cond(x)
是x>20
或x<20
(请注意,如果列表中有20个,它们将从结果中消失)
如果是家庭作业,你可以用更低级的方式解决任务:
a = [25, 8, 22, 9]
list1 = []
list2 = []
for elem in a:
if elem > 20:
list1.append(elem)
if elem < 20:
list2.append(elem)
print list1
print list2
a=[25,8,22,9]
列表1=[]
列表2=[]
对于a中的元素:
如果元素>20:
列表1.追加(元素)
如果元素<20:
列表2.追加(元素)
打印列表1
打印列表2
在这里,您将遍历列表并检查其元素。
将大于20的元素附加到一个列表中;这比另一个小20倍
这意味着:为该cond(x)
为True
的x
的每个元素生成一个包含f(x)
的列表
在我们的例子中,f(x)
只是x
。而cond(x)
是x>20
或x<20
(请注意,如果列表中有20个,它们将从结果中消失)
如果是家庭作业,你可以用更低级的方式解决任务:
a = [25, 8, 22, 9]
list1 = []
list2 = []
for elem in a:
if elem > 20:
list1.append(elem)
if elem < 20:
list2.append(elem)
print list1
print list2
a=[25,8,22,9]
列表1=[]
列表2=[]
对于a中的元素:
如果元素>20:
列表1.追加(元素)
如果元素<20:
列表2.追加(元素)
打印列表1
打印列表2
在这里,您将遍历列表并检查其元素。
将大于20的元素附加到一个列表中;这比另一个小。注意:假设您想要列表2中的20
listOne = [x for x in yourList if x < 20]
listTwo = [x for x in yourList if x >= 20]
print listOne
print listTwo
listOne=[x代表列表中的x,如果x<20]
listTwo=[x>=20时列表中的x代表x]
打印列表
打印列表二
虽然您应该使用for循环,但如果您从python开始,您可能会对for循环方法感兴趣
listOne = []
listOne = []
for x in yourList:
if x < 20:
listOne.append(x)
else:
listTwo.append(x)
listOne=[]
listOne=[]
对于列表中的x:
如果x<20:
追加(x)
其他:
listwo.append(x)
注意:假设您想要列表2中的二十个
listOne = [x for x in yourList if x < 20]
listTwo = [x for x in yourList if x >= 20]
print listOne
print listTwo
listOne=[x代表列表中的x,如果x<20]
listTwo=[x>=20时列表中的x代表x]
打印列表
打印列表二
虽然您应该使用for循环,但如果您从python开始,您可能会对for循环方法感兴趣
listOne = []
listOne = []
for x in yourList:
if x < 20:
listOne.append(x)
else:
listTwo.append(x)
listOne=[]
listOne=[]
对于列表中的x:
如果x<20:
追加(x)
其他:
listwo.append(x)
使用:
>L=[25,8,22,9]
>>>[x表示L中的x,如果x<20]
[8, 9]
>>>[x为L中的x,如果x>20]
[25, 22]
使用:
>L=[25,8,22,9]
>>>[x表示L中的x,如果x<20]
[8, 9]
>>>[x为L中的x,如果x>20]
[25, 22]
>>谓词=lambda x:x20
>>>为谓词中的pred打印[filter(pred[25,8,22,9])]
[[8, 9], [25, 22]]
>>谓词=lambda x:x20
>>>为谓词中的pred打印[filter(pred[25,8,22,9])]
[[8, 9], [25, 22]]
def打印分割列表(原始列表、分割值):
较低的_列表=[如果v=分割_值]
打印下部列表、上部列表
打印分割列表([25,8,22,9],20)#=>[8,9][25,22]
def打印分割列表(原始列表、分割值):
较低的_列表=[如果v=分割_值]
打印下部列表、上部列表
打印分割列表([25,8,22,9],20)#=>[8,9][25,22]
如果查看URL,您会发现您不在;)当老师展示这个时,他会说什么?:)超级答案!要是所有的答案都是这样就好了@Trufa我们不知道是否有老师,因为它没有被标记为家庭作业。如果你查看URL,你会发现你不在;)当老师展示这个时,他会说什么?:)超级答案!要是所有的答案都是这样就好了@Trufa我们不知道是否有老师,因为它没有被标记为家庭作业。这将使列表2中的数字=
变为20,这是不正确的。将else
更改为x>20
@jamylak我从未注意到你的评论,我不知道为什么!我以为他只是错过了worded,想要名单上的20个,但我们从未收到OP的回复,所以谁知道。。。我将在警告中编辑。。。谢谢这会将数字==
放到列表2中的20,这是不正确的。将else
更改为x>20
@jamylak我从未注意到你的评论,我不知道为什么!我以为他只是错过了worded,想要名单上的20个,但我们从未收到OP的回复,所以谁知道。。。我将在警告中编辑。。。谢谢这是由于排序而导致的O(n log n)。此外,打印完成时,循环至少应立即退出。由于排序原因,该循环为O(n log n)。此外,循环至少应该在打印完成后立即退出。这可能是他所说的,但我解释了他的意思。我怀疑他只是想扔掉任何20个。他可能是这么说的,但我解释了他的意思。我怀疑他只是想扔掉任何20个。
def print_split_list(raw_list, split_value):
lower_list = [v for v in raw_list if v < split_value]
upper_list = [v for v in raw_list if v >= split_value]
print lower_list, upper_list
print_split_list([25, 8, 22, 9], 20) # => [8, 9] [25, 22]
li = [25, 8, 22, 9]
li.sort()
for i, x in enumerate(li):
if x > 20:
print li[:i]
print li[i:]
break