如何将for循环输出转换为python列表

时间:2018-09-21 21:24:58

标签: python loops for-loop

我是Python的新手,很抱歉这个问题。

这是我的输出(来自网站的价格)。我想知道如何将它们转换为int的列表

for price_list_items in price_list:
        for values in price_list_items:
            x= values.rstrip(' zł')
            print(x)

479 000
355 000
269 000
499 000
289 000

所需的结果将是[479,000,355,000,...]。另外,我希望能够使用这些值执行基本操作。 我找到了该线程How to convert a for loop output into a list (python),但并没有帮助我。

2 个答案:

答案 0 :(得分:1)

您的字符串看起来应该是由一系列的6位数字组成,但是由于缺乏更好的用语,两个单独的数字部分都用空格分隔,数字本身也用换行符分隔。因此,解决方案是删除数字部分之间的空格,将结果转换为整数,如下所示:

int(part.replace(' ', '')) # Finds all instances of space and replaces them with nothing

将其放入列表列表中,我们可以:

numbers = [int(l.replace(' ', '')) for l in str]

更新

自从您发布代码以来,我可以为您提供更好的答案。

[ int(v.rstrip(' zł').replace(' ', '')) for price_list_items in price_list for v in price_list_items ]

答案 1 :(得分:0)

lista = []

for price_list_items in price_list:
        for values in price_list_items:
            x= values.rstrip(' zł')
            lsita.append(x)

lista = ['479 000', '350 000']
for idx, item in enumerate(lista):
        item = item.split()
        item = ''.join(item)
        lista[idx] = int(item)

print(lista)
  

~/python/stack$ python3.7 sum.py [479000, 350000]

将最后一行从append更改为lista,而不是print。现在我们有了lista = ['479 000', ...],但是我们希望int在其上执行操作。

因此我们可以enumerate list,从那里split()join()到这里lista = ['479000', ...],然后我们可以使用{{ 1}},然后将它们作为int(item)放回lista

为了娱乐,我们可以做一些int,然后从以下位置进行操作:

map