pythonfor生成list
❶ python 使用嵌套的for循环创建二维列表
因为你一开始的arr只是一个一维列表[],所以第一个循环其实是为第二个循环准备需要用到的空列表,你要是append(x)的话相当于arr在第一层第一个循环后变成[0],然后在第二层的循环里arr[x]=arr[0]=0就是一个数,没办法append
❷ Python列表生成器的循环技巧分享
Python列表生成器的循环技巧分享
这篇文章主要介绍了Python列表生成器的循环技巧分享,本文讲解了列表生成器中一个循环和二个循环的不同写法,需要的朋友可以参考下
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
一个循环
在C语言等其他语言中,for循环一般是这样的
如果python也这么写,那么真该看下python的基础教程了~
但要注意的是,需要加一个[]来,否则会报错...
在上面的例子中,不仅可以嵌套for,甚至可以嵌套if语句
再看看,原来是什么样子
两个循环呢?
原来可能是这样的?
现在可以这样了!!!
❸ python 如何将for循环 的结果写成一个数组
代码:
list=[]
foriinrange(10):
list.append(i)
print(list)
过程:
>>> for i in range(10):
... list.append(i)
...
>>> print(list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
❹ python中,如何在每一次for循环时都建一个新的列表
这样:
list=[]
>>>foriinrange(5):
...list.append([i])
...
>>>list
[[0],[1],[2],[3],[4]]
>>>list[0]
[0]
>>>list[1]
[1]
(4)pythonfor生成list扩展阅读:
注意事项
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
for iterating_var in sequence:
statements(s)
例如:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
for letter in 'Python': # 第一个实例
print '当前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print '当前水果 :', fruit
print "Good bye!"
❺ 关于python列表生成的一个问题
python的列表生成式
一、r的防止字符转义
print r"a\nb"
运行结果:
a\nb
二、获取变量类型
a = r"a\nb"
print type(a)
运行结果:
<type 'str'>
三、判断类型
a = r"a\nb"
print isinstance(a,str)
运行结果:
True
四、对list、tuple、dict、set进行迭代
4.1常用的方式
list = ['a','b','c']
for i in list:
print i
dict = {"k1":"v1","k2":"v2"}
for k,v in dict.items():
print k,v
但是这种迭代方式会把list装到内存中进行迭代
4.2使用迭代器来迭代
list = ['a','b','c']
for i in iter(list):
print i
dict = {"k1":"v1","k2":"v2"}
for k,v in dict.iteritems():
print k,v
dict = {"k1":"v1","k2":"v2"}
for k in dict.iterkeys():
print k
这种方式的迭代比较省内存
4.3迭代值的同时迭代下标
list = ['a','b','c']
for index,value in enumerate(list):
print index,value
五、列表生成式
根据集合生成列表
list1 = ['a','b','c']
list2 = [1,2]
print [x*y for x in list1 for y in list2 if y>1 and y<3]
运行结果是:
['aa', 'bb', 'cc']
六、列表生成器
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
只要把一个列表生成式的[]改成(),就创建了一个generator:
g = (x * x for x in range(10))
generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。
但是我们一般通过for循环来迭代它,并且不需要关心StopIteration的错误。
for n in g:
print(n)
❻ 怎么样用python做个程序!生成一个随机数构成的列表
概述
利用python的random包和list列表
代码详解
首先导入random包
这里选择获取键入的数值来作为随机列表的长度和随机列表的取值范围
由于python支持表达式作参数这里简写了一点
import random
length = int(input("请输入你需要获得的列表长度"))
co = eval(input("请输入需要产生的随机数的个数:"))
min = eval(br.split(',')[0])
max = eval(br.split(',')[1])
ranlist=[random.randint(min,max) for i in range(length)]
#out
描述
random()方法返回随机生成的一个实数,它在[0,1)范围内。
语法
以下是 random() 方法的语法:
import random
random.random()
注意:random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数无
返回值返回随机生成的一个实数,它在[0,1)范围内。
❼ python 两个list相同部分合并,不同部分列出,生成新的list
all_list = [['G60', '京沪高速', '北京', '阴天', '6-12', '偏北风', '一到二级'] ['G60', '京沪高速', '天津', '中到大雨', '7-12', '偏北风', '一到二级'] ['G60', '京沪高速', '南京', '中到大雨', '7-12', '偏北风', '一到二级']]
result = dict()
for item in all_list:
if result.get(item[3], None) is None:
result[item[3]] = item[2]
else:
result[item[3]] += "-" + item[2]
print(result)