Python_base_01 列表、元组和字典

列表:List ,是使用最频繁的数据类型,在其他语言中通常叫做数组。

1.存储一串信息

2.列表用[ ] 定义,用逗号分隔。

3.列表的索引从0开始。

name_list=["zhangsan","lisi","wangwu"]

#取值和取索引
print(name_list[2])

输出结果:wangwu

#知道列表的内容,想确定数据在列表中的位置
print(name_list.index("lisi"))

输出结果:1

#修改
name_list[1]="李四"
print(name_list)

输出结果:['zhangsan', '李四', 'wangwu']

#增加
name_list.append("tianpin ") # append 向列表的末尾追加 →['zhangsan', '李四', 'wangwu', 'tianpin ']
name_list.insert(0,"xiaopin") # insert 向指定位置插入数据 →['xiaopin', 'zhangsan', '李四', 'wangwu', 'tianpin ']

temp_list=["孙阳"]
name_list.extend(temp_list) # extend 把另一个列表的完整内容追加到当前列表的末尾

输出结果:
['xiaopin', 'zhangsan', '李四', 'wangwu', 'tianpin ', '孙阳']

#删除
motorcyles=['honda','yamaha','suzuki']

last_owned=motorcyles.pop()
print(last_owned) #输出 suzuki pop()可删除列表末尾的元素,并让你能够接着使用它的值。


name_list.pop(2) # pop 可以指定删除元素的索引
print(name_list)

name_list.clear() # clear 清空列表
print(name_list)

如果只知道要删除的元素的值,可使用方法 remove()
del name_list[1]  #del 将变量从内存中删除

#有单词都是以大写开始
bicys=['trek','cannmojd','resline']
print(bicys[0]) #输出 teck

print(bicys[0].title()) #输出 Trek

 

列表的数据统计:
name_list=["zhangsan","lisi","wangwu"]

#len (length统计列表的元素的总数)
list_len=len(name_list)

print("列表中包含%d个元素" %list_len)

输出结果:列表中包含3个元素

#count
count=name_list.count("张三")

print("张三出现了 %d 次" %count)

输出结果:张三出现了 0 次

 

列表的排序:
name_list=["zhangsan","lisi","wangwu"]
num_list=[6,8,4,1,10]

#升序
name_list.sort()
num_list.sort()

print(name_list)
print(num_list)

输出结果:
['lisi', 'wangwu', 'zhangsan']
[1, 4, 6, 8, 10]

#降序
name_list.sort(reverse=True)
num_list.sort(reverse=True)

print(name_list)
print(num_list)

#逆序 
name_list=["zhangsan","lisi","wangwu"]
num_list=[6,8,4,1,10]
name_list.reverse()
num_list.reverse()

print(name_list)

print(num_list)

输出结果:
['wangwu', 'lisi', 'zhangsan']
[10, 1, 4, 8, 6]
#使用迭代遍历列表
name_list=["张三","李四","王五","王小二"]
遍历就是从头到尾依次从列表中获取数据
#for 循环内部使用的遍历 in 列表:

for my_name in name_list:
print("我的名字是 %s" %my_name)

输出结果:

我的名字是 张三
我的名字是 李四
我的名字是 王五
我的名字是 王小二

#将列表中每个数值乘以3
vec=[2,4,6]
print([3*x for x in vec])

结果:[6, 12, 18]

还可以玩点新花样,如下:
vec=[2,4,6]
print([[x,x**2] for x in vec])
结果:[[2, 4], [4, 16], [6, 36]]

#可以使用if子句作为过滤器,如下:
vec=[2,4,6]
print([3*x for x in vec if x > 3])

结果:[12, 18]


#列表的应用场景

尽管python的列表中可以存储不同类型的数据
但是在开发中,更多的应用场景是
1.列表存储相同类型的数据
2.通过迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作。


元组: tuple 与列表类似,不同之处在于元组不能修改。

1.存储一串信息,通常保存不同类型的数据;

2.列表用()定义,用逗号分隔;

3.列表的索引从0开始。

#定义一个只包含一个数据的元组 可用 print(type(single_tuple))打印类型
single_tuple=(5,)
info_tuple=("zhangsan",18,1.75)

#取值和取索引

print(info_tuple[0])
print(info_tuple.index("zhangsan"))

输出结果:
zhangsan
0
#统计某个数据出现的次数
info_tuple=("zhangsan",18,1.75,"zhangsan")
print(info_tuple.count("zhangsan"))

输出结果:
2

#统计元组中包含元素的个数
info_tuple=("zhangsan",18,1.75,"zhangsan")
print(len(info_tuple))
输出结果:
4
#循环遍历
info_tuple=("zhangsan",18,1.75,"zhangsan")

for my_info in info_tuple:

#使用格式字符串拼接 my_info 这个变量不方便
#因为元组中保存的数据类型是不同的
print(my_info)
#应用场景
1.函数的参数和返回值;
2.格式字符串,格式化字符串后面的()本质上就是一个元组;
3.让列表不可被修改,以保护数据安全。

#格式化字符串的()本质上就是元组

print("%s 年龄是%d,身高是%.2f" %("小明",18,1.75))

输出结果:小明 年龄是18,身高是1.75

info_tuple=("小明",18,1.75)

print("%s 年龄是%d,身高是%.2f" %info_tuple)
#列表转换成元组

num_list=[1,2,3,4]

num_tuple=tuple(num_list)

print(type(num_tuple))

输出结果:
<class 'tuple'>

字典:dictionary 是除列表外python中最灵活的数据类型。

1.和列表的区别:

列表是有序的对象集合
字典是无序的对象集合

2.字典用{}定义
3.字典使用键值对存储数据,键值之间使用:分隔;键必须是唯一的;值可以取任何数据类型,但键只能使用字符串、数字和元组.

xiaoming_dict={"name":"小明"}

#取值
print(xiaoming_dict["name"])

#增加/修改
xiaoming_dict["age"]=18 #如果key不存在,会新增键值对

print(xiaoming_dict)

输出结果:

{'name': '小明', 'age': 18}

xiaoming_dict["name"]="小小明"  #如果key存在,会修改键值对
print(xiaoming_dict)

输出结果:{'name': '小小明', 'age': 18}

#删除

xiaoming_dict.pop("name")
print(xiaoming_dict)

#字典的应用场景
#使用多个键值对,存储描述一个物体的相关信息
#将 多个字典 放在一个列表中,再进行遍历

card_list=[
{"name","张三",
"QQ","1234567",
"phone","110"},
{"name", "李四",
"QQ", "12345678",
"phone", "1100"},
]

for my_card in card_list:
print(my_card)

输出结果:

{'name', '1234567', 'QQ', '110', 'phone', '张三'}
{'name', '李四', 'QQ', 'phone', '1100', '12345678'}

 







 


 

 

posted @ 2018-12-05 16:59  我是一只小小小小鸟~  阅读(297)  评论(0编辑  收藏  举报