Python中文学习大本营:http://www.pythondoc.com/

一、字符串操作

一、用途:名字,性格,地址

  1. name = 'wzs' #name = str('wzs')
    print(id(name),type(name),name)

二、优先掌握的

  1. # 优先掌握的
  2. 切片 顾头不顾尾
  3. msg='hello world'
  4. ##正向取值
  5. print(msg[:])
  6. print(msg[::]) #哪 到哪 步长
  7. print(msg[:])
  8. print(msg[::])
  9. #反向取值
  10. print(msg[::-]) #步长可以为负值
  11. print([])
  12. 长度len
  13. msg1 = 'qna ss'
  14. print(len(msg1))
  15.  
  16. 成员运算 innot in
  17. msg = 'hello world'
  18. print('he' in msg)
  19. print('ho' not in msg)
  20.  
  21. 移除空白(默认去掉字符串两端的空格)strip
  22. password = 'alex3714 '
  23. ##可以不做赋值操作
  24. print(password.strip())
  25. ##去掉指定的字符
  26. msg2 = '*******eg**on*****'
  27. print(msg2.strip('*'))
  28. msg3 = ' ****wzs ***** '
  29. print(msg3.strip(' |*'))
  30.  
  31. #切分split 指定分隔符(默认以空格为分隔符)
  32. 取出用户名
  33. user_info = 'root:x:0:0:root:/root:/bin/bash'
  34. # print(user_info[:])
  35. print(user_info.split(':')[]) #两个参数,以什么为分割和最多切割几次,默认有多少分割符,就切多少次
  36. print(user_info.split(':',)[]) #以什么分割,分割多少次

三、常规操作

  1. msg = '******alex****'
  2. print(msg.strip('*'))
  3. print(msg.lstrip('*'))
  4. print(msg.rstrip('*'))
  5.  
  6. msg = 'my name is wzs,my age is 18'
  7. print(msg.startswith('my')) #以什么开头
  8. print(msg.endswith('')) #以什么结尾
  9.  
  10. print(msg.replace('my','wzs',))
  11.  
  12. #格式化输出
  13. # 方式一
  14. print('my name is %s,my age is %s' %('wzs',))
  15. # 方式二
  16. print('my name is {},my age is {}'.format('wzs',) )
  17. # 方式三:打印指定位置的元素
  18. print('{1} {0} {1}'.format('egon',))
  19. print('my name is {x},my age is {y}'.format(y=,x='wzs'))
  20.  
  21. join连接
  22. user_info = 'root:x:0:0:root:/root:/bin/bash'
  23. l = user_info.split(':')
  24. print(l) #以什么为分隔,以列表显示
  25. print(':'.join(l)) #列表元素用什么连接
  26. print(' '.join(l))
  27.  
  28. # center,ljust,rjust,zfill
  29. print('wzs'.center(,'=')) #center把前面的放在中间;总字符数量,其他的用‘=’填充
  30. print('wzs'.ljust(,'=')) #ljust 把前面的放在左边;总字符数量,其他的用‘=’填充
  31. print('wzs'.rjust(,'=')) #rjust 把前面的放在右边;总字符数量,其他的用‘=’填充
  32. print('wzs'.zfill()) #zfill 把前面的放在右边;总字符数量,其他的用‘’填充

四、了解

  1. find,rfind,index,rindex,count
  2. # # find 查找
  3. # msg = 'hello world'
  4. # print(msg.find('ell')) ##从左到右找,若有,则返回第一个字符的索引
  5. # print(msg.find('ell33')) ##从左到右找,若没有,则返回-
  6. # #index 索引
  7. # print(msg.index('e',,)) #从左到右找(可以指定范围),若有,则返回返回第一个字符的索引
  8. # # print(msg.index('ell33')) ##从左到右找(可指定范围),若没有,则会报错 所以不要以index找元素
  9. # # count 统计在某个范围(默认是整个范围)一个fa某个元素的数量
  10. # print(msg.count('l',,))
  11. #
  12. # 设定tab空格的数量
  13. # msg='abc\tdeft'
  14. # print(msg.expandtabs())
  15. #
  16. # 字母数字判断
  17. # 字母大小写转换
  18. # msg='i am Chinese people'
  19. # # msg = 'wzs112'
  20. # print(msg.capitalize()) #首字母大写
  21. # print(msg.upper()) #字母全转换成大写
  22. # print(msg.lower()) #字母全转换成小写
  23. # print(msg.title()) #单词首字母大写
  24. # print(msg.swapcase()) #变量是否包含空格
  25. #
  26. # is系列
  27. # msg='i am Chinese people'
  28. # print(msg.isupper()) #是否全部大写
  29. # print(msg.islower()) #是否全部小写
  30. # print(msg.istitle()) #是否首字母大写
  31. #
  32. # 字母和数字
  33. # msg='asasdf123'
  34. # print(msg.isalnum()) #字符串是否由字母或数字组成
  35. # msg = 'asdfasdf'
  36. # print(msg.isalpha()) #字符串是否只有字母组成
  37. #
  38. # msg=' '
  39. # print(msg.isspace()) ##是否只有空格
  40. # msg='aaaai fabc'
  41. # print(msg.isidentifier()) #标志符
  42. #
  43. # 判断数字
  44. # age =
  45. # inp = input('age>>: ').strip() #输入内容有空格,去掉
  46. # if inp.isdigit():
  47. # inp=int(inp)
  48. # if inp > age:
  49. # print('ok')
  50. # else:
  51. # print('必须输入数字')
  52. #
  53. num1=b'' #bytes
  54. num2=u'' #unicode,python3中无需加u就是unicode
  55. num3='四' #中文数字
  56. num4='壹'
  57. num5='Ⅳ' #罗马数字
  58.  
  59. # bytes,unicode
  60. print(num1.isdigit())
  61. print(num2.isdigit())
  62. print(num3.isdigit())
  63. print(num4.isdigit())
  64. print(num5.isdigit())
  65.  
  66. # unicode
  67. # print(num2.isdecimal())
  68. # print(num3.isdecimal())
  69. # print(num4.isdecimal())
  70. # print(num5.isdecimal())
  71.  
  72. # unicode,汉字,罗马
  73. # print(num2.isnumeric())
  74. # print(num3.isnumeric())

二、列表操作

  列表是最常用的数据类型之一,通过列表可以对数据实现方便的存储、修改的等操作

  定义列表:fruits = [“’apple”,”orange“,”pear”,”banana”]

  列表通过下标,访问数据,下标从0开始

一、常规操作

  1. students = ['wzs','alex','egon',11,['cyy','bjq']]

  1、切片

print(students[:])

  2、追加

students.append('oldboy')

  3、插入

students.insert(,'alex')

  4、修改

  1. students[2] = 'xiaoming'
  2. print(students)

  5、删除

  1. del students[] ##del是一种通用的删除方式
  2. students.remove('egon') ##remove按照值去删的,是单纯的删除,不会返回删除的值
  3. print(students)
  4. students.pop() #pop按照索引去删,默认从末尾(-)开始删除
  5. res = students.pop()
  6. print(res)

  6、取值

print(students[])

  7、迭代 extend()方法

  学习链接地址:https://www.cnblogs.com/wushuaishuai/p/7729011.html

二、常规操作

  1. students = ['wzs','alex','egon',,['cyy','bjq']]
  2. # 插入 指定位置插入值
  3. students.insert(,'alex')
  4. #可以以列表的方式追加多个元素到原来列表的末尾
  5. students.extend([,,,])
  6. #统计列表某个元素的个数
  7. print(students.count('alex'))
  8. print(students)

三、了解

  1. students = ['wzs','alex','egon',,['cyy','bjq']]
  2. # 清除列表
  3. print(students.clear())
  4.  
  5. # 复制
  6. l = students.copy()
  7. print(l)
  8.  
  9. # 反转 reverse() #单纯的反转,将列表的索引顺序从倒过来
  10. students.reverse()
  11. print(students)
  12.  
  13. #sort排序,默认是从小到的顺序
  14. l=[,,-,,]
  15. # l.sort()
  16. l.sort(reverse=True) #从大到小的顺序排序元素
  17. print(l)

五、列表合并

  1、使用“+”号

  运算符的重载

  1. l1=[1,2,3]
  2. l2=[1212,"hello"]
  3. l3=l1+l2
  4. print(l3)

  2、使用extend方法

  方法比较简洁,但会覆盖原始list

  1. l1.extend(l2)
  2. print(l1)

  3、使用切片进行合并

  功能比较强大,可以将一个列表插入另一个列表的任意位置

    以列表的长度切片合并,结果和前两种方法结果一样。在前面列表尾部插入列表。
  1. l1[len(l1):len(l1)]=l2
  2. print(l1)
    在前面的开头插入列表
  1. l1[0:0]=l2
  2. print(l1)
    也可以指定任意位置插入
  1. l1[1:1]=l2
  2. print(l1)

六、练习

  1. #队列 先进先出
  2. # 使用apend
  3. # l1=[]
  4. # l1.append('first')
  5. # l1.append('second')
  6. # l1.append('third')
  7. # print(l1)
  8. # print(l1.pop())
  9. # print(l1.pop())
  10. # print(l1.pop())
  11.  
  12. #堆栈 先进后出
  13. # print(l1.pop(-))
  14. # print(l1.pop(-))
  15. # print(l1.pop(-))

队列和堆栈(append和pop实现)

  1. #使用insert和pop
  2. l2=[]
  3. l2.insert(0,'four')
  4. l2.insert(0,'five')
  5. l2.insert(0,'six')
  6. print(l2)
  7. ##堆栈 后进先出原则
  8. # print(l2.pop(0))
  9. # print(l2.pop(0))
  10. # print(l2.pop(0))
  11. ##队列 先进先出原则
  12. print(l2.pop(-1))
  13. print(l2.pop(-1))
  14. print(l2.pop(-1))

队列和堆栈(insert和pop实现)

三、元组

  元组其实跟列表差不多,只是元组一旦创建,便不能再修改,所以又叫只读列表

  定义元组:names = (“wzs”,"alex","egon")

  只有两个方法,一个count,一个index

  1. 1 salary = (12000,18000,9000,36000)
  2. 2 # print(id(salary),type(salary),salary)

一、优先掌握的操作

  1. 1 # 按索引取值(正向取+反向取)
  2. 2 print(salary[1])
  3. 3 # 切片
  4. 4 print(salary[:5:2])
  5. 5 #长度(元素的数量)
  6. 6 print(len(salary))
  7. 7 #成员运算 in和not in
  8. 8 print(12000 in salary)

二、常规操作

  1. 1 # index 取索引所对应的值 索引存在,返回相对应的值;不存在报错
  2. 2 print(salary.index(12000))
  3. 3 # print(salary.index(120001))
  4. 4 #count 统计列表中元素的数量
  5. 5 print(salary.count(9000))

三、数据取值操作 for和while循环

  1. 1 #列表、字符串和元组通过索引取值,while循环;
  2. 2 l1 = [12,45,11,66,112]
  3. 3 index = 0
  4. 4 while index < len(l1):
  5. 5 # print(index) #取索引
  6. 6 print(index,l1[index]) #取索引和索引所对应的值
  7. 7 index +=1
  8. 8
  9. 9 # #使用for 循环
  10. 10 l = ['a','b','t','s','e']
  11. 11 #直接取值
  12. 12 for item in l:
  13. 13 print(item)
  14. 14 # 取索引
  15. 15 for item in range(len(l)):
  16. 16 print(item)

四、练习

  1. 简单购物车,要求如下:
  2. 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入  
  1. msg_dic={
  2. 'apple':10,
  3. 'tesla':100000,
  4. 'mac':3000,
  5. 'lenovo':30000,
  6. 'chicken':10,
  7. }
  1.  
  1. 1 msg_dic={
  2. 2 'apple':10,
  3. 3 'tesla':100000,
  4. 4 'mac':3000,
  5. 5 'lenovo':30000,
  6. 6 'chicken':10,
  7. 7 }
  8. 8 goods_l=[] ##定义购物车
  9. 9 while True:
  10. 10 for key in msg_dic: #循环商品列表
  11. 11 print(key,msg_dic[key])
  12. 12 choice = input("你想购买什么:").strip() ##输入你自己需要的东西,去掉空字符串
  13. 13 if choice not in msg_dic:continue #在若你输入的东西不在字典中,停止这个循环,继续输入
  14. 14 count = input("个数>>:").strip()
  15. 15 if count.isdigit():#判断输入的必须是数字
  16. 16 goods_l.append((choice,msg_dic[choice],int(count))) ##将用户输入信息追加到元组中
  17. 17 print(goods_l)

四、字典

  作用:存多个值,key-value存取,取值速度快

  定义:key必须是不可变类型,value可以是任意类型

  语法:

  1. info = {
  2. 'stu001':"小明",
  3. 'stu002':"小红",
  4. 'stu003':"小亮",
  5. }

  一、字典的特性:

    1、字典是无序的

    2、key必须是唯一的

  二、优先的操作:

  1. 1 info = {'name':'wzs','age':27,'sex':'male'}

  1、增加

  1. 1 info['hobbies'] = ['running','reading','music']
  2. 2 print(info)

  2、修改

1 info['name']='alex' 2 print(info)

  3、删除

  1. 1 print(info.pop('name')) #删除指定的key
  2. 2 print(info.pop('wzs',None)) #删除的key不存在,可自定义返回的内容(默认值是None)
  3. 3 print(info.popitem()) #删除的key不存在,可自定义返回的内容(默认值是None)
  4. 4 print(info)

  4、查找

  1. 1 info2 = {'name':'wzs','age':20,'sex':'male'}
  2. 2 #取值get
  3. 3 # print(info2['name12']) ##直接使用key取值,key不在会报错
  4. 4 print(info2.get('name12','inexistent')) #使用get取值,存在会返回相应的值;不存在则返回自定义的值
  5. 5 print(info2.popitem()) #随机删除一个键值对

  5、多级字典嵌套机操作

  1. 1 av_catalog = {
  2. 2 "欧美":{
  3. 3 "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
  4. 4 "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
  5. 5 "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
  6. 6 "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
  7. 7 },
  8. 8 "日韩":{
  9. 9 "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
  10. 10 },
  11. 11 "大陆":{
  12. 12 "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
  13. 13 }
  14. 14 }
  15. 15
  16. 16 av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
  17. 17 print(av_catalog["大陆"]["1024"])
  18. 18 #ouput
  19. 19 ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']

  6、键值对的数量 len和成员运算

  1. 1 print(len(info))
  2. 2 # # 成员运算 in 和not in
  3. 3 print('name' in info) 

  7、循环字典

  1. 1 for key in info.keys():
  2. 2 print(key)
  3. 3 for val in info.values():
  4. 4 print(val)
  5. 5 for item in info.items():
  6. 6 print(item) 

  三、常用的方法

  1. setdefault的功能
  2. 1key存在,则不赋值,key不存在则设置默认值
  3. 2key存在,返回的是key对应的已有的值,key不存在,返回的则是要设置的默认值
  1. 1 #设定两个参数,分别传值
  2. 2 for k,v in info2.items():
  3. 3 print(k,v)
  4. 4 #设定空键值对
  5. 5 print(info2.setdefault('hobbbies',['reading','runnning'])) ##有则不改,返回已有的值;没有则新增,返回新增的值
  6. 6 print(info2)
  7. 7 #设定空置的键值对
  8. 8 print(info2.setdefault('hobbies',[]))
  9. 9 print(info2['hobbies'])
  1. 判断key是否在字典中,若不在,先创建空值键值对(值为列表),然后追加值到列表;若在的话,追加新值到列表中
  1. 1 info3 = {'name':'wzs','age':20,'sex':'male'}
  2. 2 #方式一
  3. 3 if 'hobbies' not in info3:
  4. 4 info3['hobbies'] = []
  5. 5 info3['hobbies'].append('music')
  6. 6 else:
  7. 7 info3['hobbies'].append('read')
  8. 8 #方式二
  9. 9 info3.setdefault('hobbies',[]).append('music')
  10. 10 info3.setdefault('hobbies',[]).append('read')
  11. 11 print(info3)

  四、了解的操作

  1. 1 ##update 新增字典的键值对:创建新的字典,使用update将新的字典里面的内容增加到原来的字典中
  2. 2 info = {'name':'wzs','age':27,'sex':'male'}
  3. 3 info_new = {'a':1,'b':16737}
  4. 4 info.update(info_new)
  5. 5 print(info)
  6. 6
  7. 7 #创建初始化字典
  8. 8 #新字典如下dic={'name':None,'age':None,'sex':None,'hobbies':None}
  9. 9 dic_new = {}.fromkeys(['name','age','sex','hobbies'],None)
  10. 10 print(dic_new)

  五、扩展

  1、有序字典类OrderedDict

  https://www.cnblogs.com/zhenwei66/p/6596248.html

  1. from collections import OrderedDict

  2、Python中字典合并的四种方法

  字典是Python语言中唯一的映射类型。字典是Python中最强大的数据类型之一。
  映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。
  字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

    1、字典类型与序列类型的区别:
  1. 存取和访问数据的方式不同。
  2. 序列类型只用数字类型的键(从序列的开始按数值顺序索引);
  3. 映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直4.接或间接地和存储数据值相关联。
  4. 映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。
  5. 映射类型用键直接“映射”到值。
    2、具体的方法如下链接

  https://blog.csdn.net/jerry_1126/article/details/73017270

  3、其他

  1. 1 # 1、链式赋值
  2. 2 x=10
  3. 3 y=x
  4. 4 x=y=z=20
  5. 5 print(id(x),id(y),id(z))
  6. 6 #交换两个变量的值
  7. 7 m = 10
  8. 8 n = 20
  9. 9 print(m,n)
  10. 10 m,n = n,m
  11. 11 print(m,n)
  12. 12
  13. 13 # 从一个数据类型中解压出我们想要的值
  14. 14 t=(22,433,42,454,99)
  15. 15 a,b,c,d,e=t
  16. 16 # print(t)
  17. 17
  18. 18 # a,_,_,_,e=t
  19. 19 # print(a,e)
  20. 20 a,*_,e=t
  21. 21 print(a,e)
  22. 22
  23. 23 # 字典
  24. 24 x,y,z={'a':1,'b':2,'c':3}
  25. 25 print(x,y,z)

  六、练习

  1. 1、有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
  2.  
  3. 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
  1. #1、设定一个空值列表的键值对字典,两个key;使用if判断,符合条件分别放到一个列表中
  2. dic_num = {'k1':[],'k2':[]}
  3. num = [11,22,33,44,55,66,77,88,99,90]
  4. for i in num:
  5. if i > 66:
  6. dic_num['k1'].append(i)
  7. else:
  8. dic_num['k2'].append(i)
  9. print(dic_num)
  1. 2 统计s='hello alex alex say hello sb sb'中每个单词的个数
  2.  
  3. 结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
  1. for word in words:
  2. if word in dic:
  3. dic[word] +=1
  4. else:
  5. dic[word] =1
  6. print(dic)

方法1 使用for循环

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3.  
  4. s = 'hello alex alex say hello sb sb'
  5. dic = {}
  6. words = s.split() ##将字符串空格为分隔,转换成列表形式
  7. for word in words:
  8. dic[word]=s.count(word)
  9. print(dic)

方法2:统计列表中单词数量即可

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3.  
  4. s = 'hello alex alex say hello sb sb'
  5. dic = {}
  6. words = s.split() ##将字符串空格为分隔,转换成列表形式
  7. #使用setdefault设定字典的键值对
  8. for word in words:
  9. dic.setdefault(word,s.count(word))
  10. print(dic)

方法3:使用setdefault

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3.  
  4. s = 'hello alex alex say hello sb sb'
  5. dic = {}
  6. words = s.split() ##将字符串空格为分隔,转换成列表形式
  7. # print(words)
  8. #使用集合去重,减少循环次数
  9. words_set = set(words)
  10. for word in words_set:
  11. dic[word]=s.count(word)
  12. print(dic)

方法4:使用集合去重,减少循环

五、集合操作

  集合是一个无序的,不重复的数据组合,他的主要作用是

  1. 去重,把一个列表整合,就自动去重了
  2. 关系测试,测试两组数据之前的交集、差集、并集等等
  1. 定义集合:
    集合:可以包含多个元素,用逗号隔开
    集合的元素遵循的三个原则:
    1、每个元素是不可变类型(可hash,可作为字典的key
    2、没有重复的元素
    3、无序

  一、优先掌握的操作 

  1、并集:|   交集:&  差集:-  对称差集:^

  1. 1 pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
  2. 2 linuxs={'wupeiqi','oldboy','gangdan'}
  3. 3 #| 并集
  4. 4 # print(pythons | linuxs) #并集
  5. 5 # print(pythons.union(linuxs))
  6. 6 #& 交集
  7. 7 # print(pythons & linuxs) #交集
  8. 8 # print(pythons.intersection(linuxs))
  9. 9 #- 差集
  10. 10 # print(pythons - linuxs)#差集
  11. 11 # print(pythons.difference(linuxs))
  12. 12 # print(linuxs - pythons)
  13. 13 #^ 对称差集
  14. 14 # print(pythons ^ linuxs) #对称差集
  15. 15 # print(pythons.symmetric_difference(linuxs))

  2、> , >= , <, <= 父集,子集

  1. 1 # s1={1,2,3,4}
  2. 2 # s2={3,4,5}
  3. 3 # print(len(s1) > len(s2))
  4. 4 #
  5. 5 s1={1,2,3,4}
  6. 6 s2={3,4}
  7. 7 # print(s1 > s2)
  8. 8 print(s1.issubset(s2)) #子集
  9. 9 print(s1.issuperset(s2)) #父集
  10. 10 # print(s1 >= s2)

  3、去重

  1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序
  2.  
  3. 方法一:下面的顺序是乱的
  1. l=['a','b',,'a','a']
  2. l_new=list()
  3. s=set()
  4. for item in l:
  5. if item not in s:
  6. s.add(item)
  7. l_new.append(item)
  8. print(s)
  1. 方法二:下面的方法是保持原来的顺序
  1. 1 l=['a','b',1,'a','a']
  2. 2 l_new=list()
  3. 3 s=set()
  4. 4 res=tuple(l)
  5. 5 for item in res:
  6. 6 if item not in s:
  7. 7 s.add(item)
  8. 8 l_new.append(item)
  9. 9 print(l_new)
  1. 有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序
  2.  
  3. l=[
  4. {'name':'egon','age':18,'sex':'male'},
  5. {'name':'alex','age':73,'sex':'male'},
  6. {'name':'egon','age':20,'sex':'female'},
  7. {'name':'egon','age':18,'sex':'male'},
  8. {'name':'egon','age':18,'sex':'male'},
  9. ]  
  1. l=[
  2. {'name':'egon','age':18,'sex':'male'},
  3. {'name':'alex','age':73,'sex':'male'},
  4. {'name':'egon','age':20,'sex':'female'},
  5. {'name':'egon','age':18,'sex':'male'},
  6. {'name':'egon','age':18,'sex':'male'},
  7. ]
  8. l_new = list()
  9. s = set()
  10. for item in l:
  11. res = (item['name'],item['age'],item['sex'])
  12. if res not in s:
  13. s.add(res)
  14. l_new.append(item)
  15. print(l_new)

六、数据类型总结

  一、数据类型分类

  1、按存储空间的占用分(从低到高)

  1. 数字
  2. 字符串
  3. 集合:无序,即无序存索引相关信息
  4. 元组:有序,需要存索引相关信息,不可变
  5. 列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
  6. 字典:无序,需要存keyvalue映射的相关信息,可变,需要处理数据的增删改

  2、按存值个数区分

标量/原子类型 数字,字符串
容器类型 列表,元组,字典

  3、按可变不可变区分

可变 列表,字典
不可变 数字,字符串,元组

  4、按访问顺序区分

直接访问 数字
顺序访问(序列类型) 字符串,列表,元组
key值访问(映射类型) 字典

七、字符编码与转码  

  字符编码与转码:http://www.cnblogs.com/linhaifeng/articles/5950339.html

Day2 Python基础学习——字符串、列表、元组、字典、集合的更多相关文章

  1. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  2. Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作

    一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name  = "Jonathan&q ...

  3. Python数据类型-布尔/数字/字符串/列表/元组/字典/集合

    代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...

  4. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  5. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  6. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  7. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  8. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  9. python_列表——元组——字典——集合

    列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...

随机推荐

  1. sencha touch 免费培训视频

    之前的收费视频现在免费了 sencha touch版本:2.3.1 第一期:https://pan.baidu.com/s/1kUK4OFP 第二期:https://pan.baidu.com/s/1 ...

  2. Django之ORM那些相关操作

    一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 ...

  3. 【mysql】---php链接数据库---【巷子】

    一.创建public文件 <?php //第一件事情连接数据库 header("content-type:text/html;charset=utf8"); //服务器地址 ...

  4. echarts pie 图表 显示的label 中内容 字体大小自定义

    option = { tooltip: { trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" }, lege ...

  5. [No0000DC]C# FileHelper 本地文件、文件夹操作类封装FileHelper

    using System; using System.Diagnostics; using System.IO; using System.Text; using Shared; namespace ...

  6. iOS循环引用常见场景和解决办法

    好多场景会导致循环引用,例如使用Block.线程.委托.通知.观察者都可能会导致循环引用. 1.委托 遵守一个规则,委托方持有代理方的强引用,代理方持有委托方的弱引用. 实际场景中,委托方会是一个控制 ...

  7. 添加图片后xcode报错:resource fork, Finder information, or similar detritus not allowed

    /Users/songximing/Library/Developer/Xcode/DerivedData/Children-cvqgzlzddltkfndhdmzedxbnoxwx/Build/Pr ...

  8. Nessus离线安装及升级插件

    最近做客户的内网主机漏洞扫描,申请了一台内网主机做扫描服务器,安装Nessus.由于客户严格限制内网主机不能开通外网访问权限,折腾了一下Nessus离线激活和离线更新漏洞插件,详细过程截图记录. 一. ...

  9. day2_python基础

    1.变量: 用来存东西的,左边是名字,右边是值 2.python中的单引号.双信号.三引号 单引号和双引号和三引号没什么区别,用哪个都可以,如果定义字符串里面如果有单引号,则外面用双引号;如果字符串里 ...

  10. HTML5上传文件显示进度

    下面我们使用Html 5的新特性file api实现上传文件,并显示上传文件进度百分比.意图是这样的,当选择文件时,显示当前文件信息.这里我们是结合Asp.net MVC做为服务端,您也可以是其它的服 ...