一、列表(list)
1. print中的编码:
编码:# -*- coding: utf-8 -*-(python3不用)
2 .list的增删改查
# names="chenyanhui wujiawei heweimin zhouqingxiang"
# print(names)
names=["chenyanhui","wujiawei","heweimin","tuoqianqian","zhouqingxiang"]
names.append("yujianfeng") #追加在后面
names.insert(1,"tuoqianqian") #insert() 插到某个位置
names.insert(3,"maoxiaoyu")
names[2] = "chenzhenwei" # 替换
print(names)
# print(names[0],names[2])
# print(names[1:3]) #切片 顾首不顾尾
# print(names[3]) #切片
# print(names[-2]) #切片 ‘-’倒序选择
# print(names[-2:]) #切片 倒序的第一个0可以省略
# print(names[:2]) #同上 0可以省略
#delete
# #names.remove("tuoqianqian") #删除名字
#del names[1]=names pop(1) #删除序号的第几个
#names.pop() #不加下标就是删除最后一个
print(names)
#print(names.index("chenzhenwei")) #index 索引
#print (names[names.index("chenzhenwei")]) #打出索引人的名字
#print(names.count("tuoqianqian")) #count 统计
#names.reverse() #reverse 反转顺序
#names.clear() #clear 清空
#names.sort() #排序:特殊符号、数字、大写、小写 (ASCCII码)
print(names)
names2=[1,2,3,4,5]
names.extend(names2) #exted 扩展 把n2拓展到里面去你 拓展后n2依然存在
#del names2
print(names,names2)
3.列表的应用(深、浅复制)
import copy
names=["chenyanhui","wujiawei","heweimin",["jack","bob"],"tuoqianqian","zhouqingxiang"]
print(names[0:-1:2]) #切片
print(names[::2]) #省略0 -1
'''
#name2=names.copy() #copy 浅层复制
# name2=copy.deepcopy(names) #deepcopy 深度复制
print(names)
print(name2)
names[2]="何伟民"
names[3][0]="Jack"
print(names)
print(name2)
4.浅层复制的补充及引用(联合账号):
name2=names.copy() #copy 浅层复制
name3=names[:]
names=list(names) #工厂函数
person=["name",["saving moeny","100"]]
p1=person[:]
p2=person[:]
p1[0]="hero"
p2[0]="maria"
p1[1][1]=50 #修改金额
print(p1)
print(p2)
列表相关操作补充:
#更新列表
print("number_list before: " + str(number_list))
number_list[1] = 30
print("number_list after: " + str(number_list))
#删除列表元素
print("mixed_list before delete: " + str(mixed_list))
del mixed_list[2]
print("mixed_list after delete: " + str(mixed_list))
#Python脚本语言
print(len([1,2,3])) #长度
print([1,2,3] + [4,5,6]) #组合
print(['Hello'] * 4) #重复
print(3 in [1,2,3]) #某元素是否在列表中
# 列表操作包含以下函数:
# 1、cmp(list1, list2):比较两个列表的元素
# 2、len(list):列表元素个数
# 3、max(list):返回列表元素最大值
# 4、min(list):返回列表元素最小值
# 5、list(seq):将元组转换为列表
二、元组(tuple):
元组其实和列表差不多,也是存一组数,只不过一旦创建,便不能再修改,所以又叫只读列表。
语法:names = (“jack”,"jack","eric")
它只有两个方法,一个是count,一个是index()。
1、Tuple 与 list 的相同之处:
定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。
Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]。
负数索引与 list 一样从 tuple 的尾部开始计数。
与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。
2、tuple的优点:
Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。
三、tuple与list之间的转换:
Tuple 可以转换成 list,反之亦然。内置的tuple()函数接收一个 列表参数,并返回一个有着相同元素的 元组 tuple。而 list() 函数接收一个 元组参数返回一个 list。从效果上看,tuple() 冻结列表,而 list 解冻一个元组。
例1:将a分表转换成列表和数组
>>>a
(1,2,3,4)
>>>a=list(a)
[1,,2,3,4]
>>>a=tuple(a)
(1,2,3,4)
>>>
例2:列表和之间的相互转化:
2.1 list------->tuple :
list = [1,2,3,4] #创建列表
tuple(list) #强制转换
print type(list) # 查看是否转化成功
2.2 tuple----->list:
tuple =(1,2,3,4) #创建元组
list(tuple) # 强制转换
print type(tuple) #查看是否转换成功
Tuple 的其他应用
一次赋多值
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v
解释:v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v 的每个值赋值给每个变量。