Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 3.x 在Python中,有没有更简单的方法来迭代两个大小不同的列表?_Python 3.x - Fatal编程技术网

Python 3.x 在Python中,有没有更简单的方法来迭代两个大小不同的列表?

Python 3.x 在Python中,有没有更简单的方法来迭代两个大小不同的列表?,python-3.x,Python 3.x,每当我有两个列表,并且想要比较它们时,我通常会使用列表理解,但当我需要引入if/else语句或更完整的表达式和可读性时,我会转向for循环。我尝试过lambda表达式,但对它们不太自信 下面是我可能使用两个for循环的一般情况的示例 rand_array=np.random.randint(1,1000, size=1000) example_list = [100, 200, 250, 500] my_list =[] for i in rand_array: for exampl

每当我有两个列表,并且想要比较它们时,我通常会使用列表理解,但当我需要引入if/else语句或更完整的表达式和可读性时,我会转向for循环。我尝试过lambda表达式,但对它们不太自信

下面是我可能使用两个for循环的一般情况的示例


rand_array=np.random.randint(1,1000, size=1000)
example_list = [100, 200, 250, 500]
my_list =[]

for i in rand_array:
    for example in example_list:
        if i < example:
            my_list.append(f'less than {example}')
            break
        elif i == example:
            my_list.append(f'is equal to {example}')
            break
        elif i > example_list[-1]:
            my_list.append(f'more than {example_list[-1]}') 
            break

my_list

rand_数组=np.random.randint(11000,大小=1000)
示例_list=[100200250500]
我的清单=[]
对于rand_数组中的i:
例如,在示例列表中:
如果我不喜欢这个例子:
my_list.append(f'小于{example}')
打破
elif i==示例:
my_list.append(f'等于{example}')
打破
elif i>示例_列表[-1]:
my_list.append(f'more{example_list[-1]})
打破
我的清单

该示例查看1-1000之间的随机值列表。然后,我根据某些特征匹配它们的值(也就是说,您可能会探索的一件事是
for
循环的
else
子句。我将它们称为
aka nobreak
,因为
else
部分是在
for
期间没有
中断的情况下执行的。在这种情况下,我认为这会使您尝试执行的操作稍微干净一些。如果这不是您想要的艾德告诉我

如果你真正想要的是把东西放进垃圾箱,那么你的目标可能是“小胖子”和“熊猫”:明白吗

导入json
进口numpy
rand_array=numpy.random.randint(11000,size=1000)
示例_list=[100200250500]
我的清单=[]
对于rand_数组中的i:
例如,在示例列表中:
如果我不喜欢这个例子:
my_list.append(f'{i}小于{example}'))
打破
elif i==示例:
my_list.append(f'{i}等于{example}'))
打破
其他:
我的列表.append(f'{i}比{example\u list[-1]}'多)
打印(json.dumps(我的列表,缩进=2))

为什么在前两种情况下,你会将
i
example
进行比较,而在最后一种情况下,你会将
example\u list[-1]
i
进行比较?而且,你只有三种可能的情况:
i
i==example
,以及
i>example
。为什么你希望有更多的
。append()
示例列表
更长时?@PranavHosangadi
示例列表
也可以是作者列表或数字以外的其他内容。
示例列表[-1]
适用于任何大于500的数字,因为它们在第一个语句中都会失败。我不太明白你的意思。请你的问题添加示例输入(最好是一个5-6个数字的小型硬编码数组,用于
随机数组,而不是随机列表和~3个数字用于
示例列表
)并演示您的预期输出是什么。您想看看
i
属于什么范围吗?谢谢。我猜我的问题只是形式不正确,并且诚实地意识到我不需要我所想的。但是bin非常酷,所以我需要进一步研究,我从未意识到您可以在一个循环中初始化if语句并结束i一个接一个!
import json
import numpy

rand_array = numpy.random.randint(1, 1000, size=1000)
example_list = [100, 200, 250, 500]
my_list =[]
for i in rand_array:
    for example in example_list:
        if i < example:
            my_list.append(f'{i} is less than {example}')
            break
        elif i == example:
            my_list.append(f'{i} is is equal to {example}')
            break
    else:
        my_list.append(f'{i} is more than {example_list[-1]}')

print(json.dumps(my_list, indent=2))