Python编程快速上手-第四章

list

生成list

names = ['park','json','xff','ycq']
names = []
spam = [['cat', 'bat'], [10, 20, 30, 40, 50]] #就像其他语言里的多维数组

获取list元素

names[0]
spam[1][4]
names[-1]

切片

names[:] #复制list
names[2:5]
names[:5]
name[3:-1]

len()函数

获取对象的长度,可用于str、list、dict

list连接和复制

根str的连接和复制一样
[1, 2, 3] + ['A', 'B', 'C']
['X', 'Y', 'Z'] * 3

del语句

需要知道要删除元素的下标。可用于str、list、dict、int、float
del names[2]

list循环

supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
for i in range(len(supplies)):
    print( supplies[i])

这个用法感觉有点像c语言

supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
for i in supplies:
    print(i)

这样才像Python

in 和 not in

验证成全资格,可用于if的条件判断

list的方法

index()

返回元素的下标
spam = ['hello', 'hi', 'howdy', 'heyas']
spam.index('hello')

append() / insert(,)

list添加元素,没有返回值
spam.append('moose')
添加元素到list末尾
spam.insert(1, 'chicken')
添加元素后’chicken‘在位置1

pop() / pop(9)

list.pop()
删掉list的最后一个元素
list.pop(9)
删掉list下标为9的元素
有返回值的list方法

remove()

根据’元素值‘删除元素,永久删除。无返回值
spam.remove('bat')
删除不存在的元素会报错ValueError: list.remove(x): x not in list
所以在删除前应该确定成员资格 if 'xx' in spam

sort()排序

永久排序,
spam.sort()
spam.sort(reverse=True)
sort()方法对字符串排序时,使用“ASCII 字符顺序”,而不是实际的字
典顺序。这意味着大写字母排在小写字母之前
spam.sort(key=str.lower)
需要按照普通的字典顺序来排序,就在sort()方法调用时,将关键字参数
key 设置为str.lower。

不可变数据类型的改变

不可变数据类型:数子、字符串、布尔
可变数据类型:list、Dict、
可以通过id()函数来看类型是不是可变数据类型,给变量重新赋值后如果ID改变那么就是不可变数据类型。可改变数据类型实际上指的是python开辟的内存区间的内容是可以改变的。
在参数调用的时候,不可变数据类型调用的是值,不可变数量类型调用的是指针。

name = 'Zophie a cat'
name[7] = 'the'
str、tuple是不可变的,以上的做法会报错TypeError: 'str' object does not support item assignment

但是可以通过一些方法构造新的str和tuple
name = 'Zophie a cat'
newName = name[0:7] + 'the' + name[8:12]

tuple1 = (1,2,3,4)不能修改元组中的一个元素,例如tuple1[0] = 6,会出错。但是可以这样做给tuple1重新赋值,tuple1 = (6,2,3,4)

元组

names = ('park','cff','ycq')
names = ('park',)
如果元组中只有一个值,你可以在括号内该值的后面跟上一个逗号

数据类型转换

list()和tuple()

你可能感兴趣的:(Python编程快速上手-第四章)