python中常用数据类型:
- number
- 字符串
- 列表(list)
- 元组(tuple)
- 字典(dict)
- 集合(set)
1. 列表(list):
- 相同点:python中的列表和c中的数组很像
- 不同点:python可用存储不同的数据类型
创建一个列表
list1 = [1887,'雪碧','xb']
print(type(list1))
print(list1)
[1887, '雪碧', 'xb']
遍历列表:把元素一个个取出来
for 临时变量 in 可迭代对象
for i in list1:
print(i)
列表的“增删改查”
- (增)列表的增加操作:
【练习1】 创建一个[0,1,...,10]的列表
a = []
for i in range(0,11):
a.append(i)
print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
【练习2】列表的“增删改查”的训练
- (增)遍历来给空列表增加元素:
skill_list = []
for i in range(1,5):
skill = '技能' + str(i) # 强制转换类型
# 向列表尾部添加元素
skill_list.append(skill)
print(skill_list)
['技能1', '技能2', '技能3', '技能4']
- (查)查询——访问:
# 访问skill_list的第二个元素
print(skill_list[1])
技能2
- (查)查询——判断:
# 判断a列表中是否有9这个数字
if 9 in a:
print('9在a中')
if 11 not in a:
print('11不在a中')
9在a中
11不在a中
- (删)删除:
# 删除技能2这个元素
# del 要删除的列表名[索引]
del skill_list[1]
print('删除后',skill_list)
删除后 ['技能1', '技能3', '技能4']
- (改)修改:
# 修改skill_list最后一个元素为垂直打击
skill_list[2] = '垂直打击'
print('修改后',skill_list)
修改后 ['技能1', '技能3', '垂直打击']
2. 元组
和列表相似(可存不同的数据类型),但不能进行修改
创建元组,用()表示元组
a = (2019,'雪碧','xb')
print(type(a))
print(a)
(2019, '雪碧', 'xb')
修改元组(会报错)
print(a[0])
# a[0] = 22
# print(a)
TypeError: 'tuple' object does not support item assignment
tuple优点:
- 元组的运行速度比列表快
- 不能修改所带来的安全性高(受保护)
- 元组常被作为字典的键来使用
注意区分:
b = () #代表 空元组
c = ('xb') #代表字符串
d = (22) #代表优先运算
e = (22,) #代表元组
f = (22,22) #代表元组
print(type(b))
print(type(c))
print(type(d))
print(type(e))
print(type(f))
3. 字符串
字符串创建:可使用单引号、双引号、三个单引号(跨行输出)
str1 = 'neusoft'
str2 = "雪碧"
str3 = '00"雪碧"00' #不会报错,但其他编程语言会报错
str4 = "今天是'星期二'"
# str5 = '哈哈'呵呵'哈哈' #报错
print(str1, str2, str3, str4)
neusoft 雪碧 00"雪碧"00 今天是'星期二'
插曲: len()内置函数:用于检测容器内元素的个数(列表、元组、字典均可用)
print(len(str1))
7
插曲: * 和 + 操作:*为复制,+为连接
print(str1*3)
print(str1+str(3))
print(str1+'3') #跟上一个输出语句一样的意思
neusoftneusoftneusoft
neusoft3
neusoft3
插曲:字符串的格式化输出
format()函数,用{}代替变量,然后把变量值赋予给{}
'{}字符串{}...{}'.format(变量1,变量2,...)
hero = 'Hiro'
grade = 100
print('你当前的英雄是{},等级为{}'.format(hero,grade))
你当前的英雄是Hiro,等级为100
字符串的常用操作
- replace(),替代
price = '¥1998'
price = price.replace('¥','') #重新赋值
print(price)
print(type(price))
1998
- strip(),常用于登录时服务器后端会进行去空格操作,以便核对
name = ' god is a girl '
print(len(name))
name = name.strip()
print(len(name))
17
13
- join(),主要应用于把列表变成字符串,列表与列表间的连接符可以自定义
str_intro = '' #空格做连接符
# str_intro = '_' #下划线做连接符
# str_intro = '/' #斜杠做连接符
# str_intro = '\' #报错,因为'\'代表转义符号
# str_intro = '\\' #双反斜杠做连接符
li = ['I Love LYS']
str5 = str_intro.join(li)
print(str5)
print(' '.join(li)) #三行合成一行
I Love LYS
I Love LYS
4. 字典
使用{}创建字典,字典中的每一个元素都以键值对的形式存在,中间用冒号隔开
【练习】字典的“增删改查”训练
创建字典
student_info = {'name': 'Hiro', 'addr': 'Japan', 'age': 28}
- (查)字典的访问,通过键访问值
字典名.get(键,...),可解决访问键不存在时报错的情况:
- 当字典中存在这个键时,正常返回该值
- 当字典中不存在该键时,返回none值,并且可以设置默认返回值
print(student_info['name'])
print(student_info.get('sex','hobby'))
Hiro
hobby
- (改)字典的修改,访问键后赋值,即直接修改
student_info['age'] = 20
print(student_info)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
- (增)当字典中不存在此键时,会在字典最后增加新键和值
student_info['sex'] = 'female'
print(student_info)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20, 'sex': 'female'}
- (删)删除键:del 字典名['键']
del student_info['sex']
print(student_info)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
- 返回字典所有的键keys:字典名.keys()
print(student_info.keys())
dict_keys(['name', 'addr', 'age'])
- 返回字典中所有的值values:字典名.values()
print(student_info.values())
dict_values(['Hiro', 'Japan', 20])
- 返回所有的键值对:字典名.items()
(返回形式为列表中的每一个元素都是一个元组)
print(student_info.items())
dict_items([('name', 'Hiro'), ('addr', 'Japan'), ('age', 20)])
- 把键值对转化成字典:用到强制转换类型——dict()
student_info_list = student_info.items()
print(dict(student_info_list))
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
- 字典的键和值全部遍历输出
for k, v in stu_info.items():
print(k, v)
name Hiro
addr Japan
age 20
- 字典的键遍历输出
print(student_info)
for x in student_info:
print(x)
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
name
addr
age
- 字典的值遍历输出
print(student_info)
for x in student_info:
print(student_info[x])
{'name': 'Hiro', 'addr': 'Japan', 'age': 20}
Hiro
Japan
20
5. 集合
集合也使用{}表示,但{}中没有元素时,代表的是空字典
例:{}中没有元素时:
set1 = {}
print(type(set1))
例:{}中有元素时:
set2 = {'可乐', 666}
print(type(set2))
特点:
- 列表有序,可重复;
- 元组有序,可重复;
- 字典无序,不可重复;
- 集合无序,不可重复,不支持索引,可用来去重复。
集合的遍历(无序输出)
for x in set1:
print(x)
输出结果为:
666
可乐
或:
可乐
666