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. Day2 Python基础学习——字符串、列表、元组、字典、集合

    Python中文学习大本营:http://www.pythondoc.com/ 一.字符串操作 一.用途:名字,性格,地址 name = 'wzs' #name = str('wzs')print(i ...

  2. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  3. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  4. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  5. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  6. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  7. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  8. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  9. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

随机推荐

  1. 银河麒麟操作系统U盘手动挂载,出现乱码

    使用银河麒麟操作系统,U盘手动挂载,U盘中中文字符显示为乱码??      对于银河麒麟操作系统的这一问题,可能是因为字符集的原因,需要在mount后加参数: sudo mount –o iochar ...

  2. window.requestAnimationFrame() ,做逐帧动画,你值得拥有

    window.requestAnimationFrame() 方法告诉浏览器您希望执行动画,并请求浏览器调用指定的函数在下一次重绘之前更新动画.该方法使用一个回调函数作为参数,这个回调函数会在浏览器重 ...

  3. GIF、JPEG 和 PNG的区别在哪…

    原文地址:GIF.JPEG 和 PNG的区别在哪里?作者:苗得雨 GIF.JPEG 和 PNG 是三种最常见的图片格式. GIF:1987 年诞生,常用于网页动画,使用无损压缩,支持 256 种颜色( ...

  4. MySQL (三)-- 字段属性、索引、关系、范式、逆规范化

    1 字段属性 主键.唯一键和自增长. 1.1 主键 主键:primary key,一张表中只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复. 一张表只能有最多一个主键. 1.1 ...

  5. 201521123087《Java程序设计》 第八周学习总结

    1. 本周学习总结 2. 书面作业 本次作业题集集合 List中指定元素的删除(题目4-1)1.1 实验总结                                               ...

  6. 201521044091 《java程序设计》第八周学习总结

    本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容.1.2 选做:收集你认为有用的代码片段 书面作业 本次作业题集集合 List中指定元素的删除(题目4-1)1.1 实验 ...

  7. 201521123109《java程序设计》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 ...

  8. 201521123048 《Java程序设计》第1周学习总结

    一 本周学习总结 第一周我们了解了java及其它的由来.刚开始学java显的特别吃力,对于一些概念和程序执行步骤什么的都不好理解,也有很多在编程时容易出错的地方需要花时间理解和记忆.初步一周下来,在我 ...

  9. 201521123008《Java程序设计》第1周学习总结

    本周学习总结 了解了JAVA:jdk:jre:jvm等 C语音与JAVA的部分区别: C语言全面向过程,java面向对象: C语言的代码不能跨平台,java的代码可以跨平台: C语言有指针,java没 ...

  10. 如何在分布式环境中同步solr索引库和缓存信息

    天气依旧很好,主要是凉快.老习惯,我在北京向各位问好. 搜索无处不在,相信各位每天都免不了与它的亲密接触,那么我想你确实有必要来了解一下它们,就上周在公司实现的一个小需求来给各位分享一下:如何在分布式 ...