2019-10-22(python第二天)(下)

python中常用数据类型:

  • number
  • 字符串
  • 列表(list)
  • 元组(tuple)
  • 字典(dict)
  • 集合(set)

1. 列表(list):

  • 相同点:python中的列表和c中的数组很像
  • 不同点:python可用存储不同的数据类型

创建一个列表

list1 = [1887,'雪碧','xb']
print(type(list1))
print(list1)
<class 'list'>
[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)
<class 'tuple'>
(2019, '雪碧', 'xb')

修改元组(会报错)

print(a[0])
# a[0] = 22
# print(a)
TypeError: 'tuple' object does not support item assignment

tuple优点:

  1. 元组的运行速度比列表快
  2. 不能修改所带来的安全性高(受保护)
  3. 元组常被作为字典的键来使用
注意区分:
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))
<class 'tuple'>
<class 'str'>
<class 'int'>
<class 'tuple'>
<class 'tuple'>

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
<class 'str'>
  • 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))
<class 'dict'>

例:{}中有元素时:

set2 = {'可乐', 666}
print(type(set2))
<class 'set'>

特点:

  • 列表有序,可重复;
  • 元组有序,可重复;
  • 字典无序,不可重复;
  • 集合无序,不可重复,不支持索引,可用来去重复。
集合的遍历(无序输出)
for x in set1:
    print(x)

输出结果为:

666
可乐

或:

可乐
666
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,747评论 0 10
  • 1.1 列表的定义 List(列表) 是Python中使用最频繁的数据类型,在其他语言中通常叫做数组 专门用于存储...
    体面_5376阅读 865评论 0 0
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,399评论 0 5
  • 本节要介绍的是Python里面常用的几种数据结构。通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组...
    小黑y99阅读 65,198评论 0 9
  • 因着喜欢阅读,便有缘遇见许多好书,大抵这世间有才的人是很多的。记得曾在白岩松的一本书中看到过,中国不缺故事,缺会讲...
    淇畔芷影阅读 582评论 10 13