Python语法学习二之集合

一、字符串

    b = "hello itcast.cn"
    或者
    b = 'hello itcast.cn'

二、下标和切片

2-1、下标
图片.png
2-2、切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

    切片的语法:[起始:结束:步长]
    注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
     name = 'abcdef'
     print(name[0:3]) # 取 下标0~2 的字符

三、字符串常见操作

待总结,略

四、列表

注意:Python中的列表元素可以是不同类型的

    namesList = ['zhangsan','lisi','wangwu']
4-1、遍历列表
    namesList = ['zhangsan','lisi','wangwu']
    for name in namesList: 
        print(name)
    length = len(namesList)
    i = 0
    while i<length:
        print(namesList[i])
        i+=1
4-2、列表相关操作
4-2-1、添加元素
append:通过append可以向列表添加元素
extend:通过extend可以将另一个集合中的元素逐一添加到列表中
insert:insert(index, object) 在指定位置index前插入元素object
4-2-2、修改元素
# 修改元素
namesList[1] = 'cehae'
print namesList
4-2-3、查找元素
in, not in
python中查找的常用方法为:
    in(存在),如果存在那么结果为true,否则为false
    not in(不存在),如果不存在那么结果为true,否则false


# 查找是否存在
if 'cehae' in namesList:
    print('找到了相同的名字')
else:
    print('没有找到')
index, count
查找下标和个数


a = ['a', 'b', 'c', 'a', 'b']

# 在区间[1,4)中查找元素'a'
print a.index('a', 1, 4)

# 查找元素'b'的个数
print a.count('b')
4-2-4、删除元素
列表元素的常用删除方法有:

    del:根据下标进行删除
    pop:删除最后一个元素
    remove:根据元素的值进行删除


list = ['a', 'b', 'c', 'd', 'e', 'f']

# 删除下标为2的元素
del list[2]

# 删除列表的最后一个元素
list.pop()

# 删除值为指环王的元素
list.remove('a')

print list
4-2-5、列表排序
sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

reverse方法是将list逆置。


a = [1, 4, 2, 3]
a.reverse()
print a

a.sort(reverse=True)
print a

五、元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

5-1、元组相关操作
5-1-1、查询元组数据
# 查询元组数据
tuple = ('hello', 'python')
print tuple[0]
print tuple[1]
5-1-2、修改元组数据

注意: python中不允许修改元组的数据,包括不能删除其中的元素。

# 修改元组数据
# 注意: python中不允许修改元组的数据,包括不能删除其中的元素。
tuple[1] = 'myPython'
5-1-3、元组内置函数count, index

index和count与字符串和列表中的用法相同

a = ('a', 'b', 'c', 'a', 'b')
# 在区间[1,4)中查找元素'a'
print a.index('a', 1, 4)

# 查找元素'b'的个数
print a.count('b')

六、字典

6-1、定义字典
 info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

说明:

  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的
  • 字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
  • 字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值
6-2、字典的常见操作一
6-2-1、查询元素
info = {'name': '班长', 'id': 100, 'sex': 'f', 'address': '地球亚洲中国北京'}
print(info['name'])
# 班长

print(info['address'])
# 地球亚洲中国北京

若访问不存在的键,则会报错
在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值

age = info.get('age')
print age  # 'age'键不存在,所以age为None
#None

print type(age)
#<type 'NoneType'>

age = info.get('age', 18)  # 若info中不存在'age'这个键,就返回默认值18
print age
#18

print info.get('name')
#班长
6-2-2、修改元素
info['id'] = 666

print('修改之后的id为%d:'%info['id'])
6-2-3、添加元素
info['id'] = 666 #修改
info['hobby'] = 'LOL' #hobby字段不存在,此时为添加操作
6-2-4、删除元素
对字典进行删除操作,有一下几种:

    del key:删除元素
    clear() 字典名:清空字典

    del info['hobby'] #删除hobby字段
    del info #清空字典
    
    info.clear() #清空字典
6-3、字典的常见操作二
# len,查询字典中键值对的个数
dict = {"name": "cehae", "sex": "m", "age": 17}
print len(dict)

# keys,返回一个包含字典所有KEY的列表
print dict.keys()

# values,返回一个包含字典所有value的列表
print dict.values()

#items,返回一个包含所有(键,值)元祖的列表
print dict.items()

# has_key,dict.has_key(key)如果key在字典中,返回True,否则返回False
print dict.has_key("name")

七、集合类操作总结

7-1、遍历
7-1-1、for in 遍历

通过for ... in ...:的语法结构,我们可以遍历字符串、列表、元组、字典等数据结构。

# 字符串遍历
str = "hello itcast"

for char in str:
    print char

# 列表遍历
list = [1, 2, 3, 4, 5]
for num in list:
    print num

# 元组遍历
tuple = (6, 7, 8, 9, 10)
for num in tuple:
    print num

# 字典遍历
dict = {"name": "cehae", "sex": "m", "age": 17}
print ("--------遍历方法1-------------")
for key in dict.keys():
    print key
print ("---------遍历方法2------------")
for key, value in dict.items():
    print key
    print value
7-1-2、带有下标遍历
chars = ['a', 'b', 'c', 'd']
index = 0
for char in chars:
    print ("%d %s" % (index, chars[index]))
    index += 1
7-1-3、enumerate()方法遍历
chars = ['a', 'b', 'c', 'd']
for i, char in enumerate(chars):
    print i, char
7-2、公众方法
7-2-1、运算符
图片.png

注意,in在对字典操作时,判断的是字典的键

>>> 'hello' +  'python'
'hellopython'

>>> [2,3]+[4,3]
[2, 3, 4, 3]

>>> 'wd'*4
'wdwdwdwd'

>>> 'p' in 'python'
True
>>>
7-2-2、内置函数
图片.png
>>> cmp('hello','cehae')
1
>>> cmp([1,2],[1,3])
-1
>>> cmp([1,2],[1,2])
0
>>> cmp({'name':'cehae'},{'name':'cehae1'})
-1
>>> cmp({'name':'cehae2'},{'name':'cehae1'})
1
>>> cmp({'name':'cehae1'},{'name':'cehae1'})
0
>>> cmp({'name1':'cehae1'},{'name':'cehae1'})
1
>>>
注意
cmp:cmp在比较字典数据时,先比较键,再比较值。
len:len在操作字典数据时,返回的是键值对个数。
del:del有两种用法,一种是del加空格,另一种是del()。
7-3、可变类型与不可变类型
图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容