列表(List)
列表合并
列表合并有extend方法和直接‘+’合并,两者虽然都能合并列表,且结果相同,但是前者合并列表,不会导致最终合并的列表对象内存地址号发生变化,后者会导致内存地址好的改变,这也就意味着合并后的列表被
重新定义
列表排序(按ASCALL码排序)
列表排序使用sort方法,格式为L.sort(key=None,reverse=False),其中key为可选参数,用于调用函数对表列元素进行处理。比如key=str.lower,代表把排序后的列表中所有元素字母从大写转化为小写。reverse为可选参数,默认是増序排序,若reverse=True,则为降序排序。
这里fruit为元列表,_1为sort后的列表,_h为sort(reverse=True)后的列表。
列表的其他方法
- copy()
copy方法生成的新列表与原列表地址不一样。因此可以确定,通过copy方法得到的是一个新的列表对象;这与赋值操作不同,赋值操作后新列表对象指向地址与原列表对象指向地址相同,也就是他们是同一个变量,只不过名称不同。 - count()
统计元素在列表中的数量
- reverse()
对列表进行反向记录(列表反向记录前后,列表对应的地址不变,可以通过id()来确认)
列表解析
语法格式:[expression for iter_val in iterable if cond_expr]
例子1:对集合0···10中,除0外,其他元素做平法运算
不建议用上述简洁代码实现,因为代码风格比较另类,并且不好调试
例子2:等价的形式
元组(Tuple)
元组与列表的区别:
- 元组不能对其元素进行变动,列表可以
- 元组用小括号表示(),列表用[]表示
关键词:不可变
注意:test3=(X,)方式给元组变量赋一个元素,是元组区别于其他结构数据类型的一个特例!
python语言为元组提供一种特殊默认格式------省略小括号的元组。
这里name1和age1同样可以看成一个元组(省略了小括号而已)
元组的基本操作
由于元组本身不可变,所以元组缺少了列表中对元素的增删改和排序,其他操作与列表基本类似。
例子1:
以上说明元组可以接受各种数据类型的元素(包括列表)
元组不支持对元素进行修改和增加,若要增加元素,只能重新定义元组。
例子2:python内置函数对元组求和
例子3:合并元组
元组合并只有+实现,没有列表的append方法
例子4:列表与元组的转换
- 列表转元组
- 元组转列表
字典
字典是key-value数据结构类型的,所以在遍历过程中是无序的,如果想使其按照输入的key有序的打印,可以使用Collections中的OrderedDict,具体使用如下:
输出的时候会按照1月1日到1月3日的顺序输出