1.内置list方法。
返回一个列表,参数是可迭代对象。里面输出的内容还是保持了传入的可迭代对象的元素和顺序。如果参数为空,则返回一个空的列表
a = "asd"
list(a)
['a', 's', 'd']按顺序传出课迭代的对象
List(43)
TypeError: 'int' object is not iterable
数字是不可迭代的对象所以报错
2.xrange和range的具体区别。(现在只有range 相当于这里的xrange)
2.1 xrange的用法:
xrange(开始,结束,步长)
xrange 它生成一个xrange对象。
比如我们
a = xrange(1,10)
print type(a)
print a[0] 为1
2.2 比较
range: 直接生成一个列表对象。
xrange: 它是生成一个xrange对象.
xrange的用法(现在是range的用法python3):
1当我们需要操作一个非常大的数据,而且内存比较吃紧的时候,我们可以用xrange来操作省内存。
2xrange一般用在循环里面,比如我们只需要操作部分数据的话,而不是返回全部元素来完成操作,推荐用xrange,效率更高。(用到啥出现啥)
比如:
for m in range(1000):
if m == 10:
print 'sss'
break
for m in xrange(1000): 只用判断【0-10】即可 不用把0-100全都罗列出来
if m == 10:
print'sss'
break
3.列表推导式之再应用。
3.1 可以做很多例子只要你有想法,例
3.1.2 生成数字 取出1-100的所有值的平方。
[x*x for x in range(100)] 初学可以从何往前写 先写range 再写for x in 然后再写公式x*x
3.1.3 里面生成东西不只是数字。
生成字符串 ['the %s'% d for d in xrange(10)] 这里%d中的d是传后面的for d 中用的传递 不能再用其他的字母。
生成元组 [(x,y) for x in range(2)for y in range(2)] 这里是先取x第一个数和y所有的组合 然后在取x第二个数组合 直到全部取完。
生成字典
举例dict([(x,y) for x in range(3) for y in range(2)])
{0: 1, 1: 1, 2: 1} 若相同的话则覆盖了 所以(0,0)和(0,1)都用0:1表示
意思是能生成 0:0,0:1,1:0,1:1,2:0,2:1,
在后面的把前面的覆盖了因为字典只能有一个要么0:0 要么0:1 后面的0:1把0:0覆盖了所以显示出来的只有0:1.
4 翻来覆去之再谈引用
a = ['i','am','lilei']
b = a
a[2] = 'laowang'
print b
这里b的值是['i','am',laowang']
a b 地址是相同的
del b
a a是['i','am',laowang'] 但是 此时引用
5 小技巧之再议删除、
a = []
1 del a 删除列表对象的引用
2 dela[:] 清空列表对象里的元素
例子如下a=[1,2,3]
b=a
del b
NameError: name 'b' is not defined
因为删除了b的对象引用所以b就相当于还没有赋值则出现了错误 减少了b对a的引用,所以出现错误。
(引用过的,赋值以后的在删除没用除非整个都删除就像b整个的都删去了)
a = [1,2,3]
b = a[:]
del a
[1, 2, 3]
虽然删去了a但是b已经赋值了所以再删无效
若del b[:]则删除了里面的元素不管是之前的还是被赋值的。
重点补充
比如一个元组a=(1,23,4)
用 list(a) 只是把类型改成了list 但是a的值还是元组
若想把a的值也是列表则需要重新赋值 a=list(a)即可