目录

1、字符串.... 1

2、列表[ ] 3

3、元组 ( ) 4

4、字典 { } 4

5、SET集合... 7

1、字符串

1.1查找字符串

find查找

>>> msg = "what's your company's name?"

>>> msg.find('name')

22

>>> msg.find('s')

5

index跟find()方法一样,只不过如果str不在 string中会报一个异常.

>>> msg = "what's your company's name?"

>>> msg.index('name')

22

>>> msg.index('ndf')

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError: substring not found

1.2大小写转换

>>> msg = 'WangChuang'

>>> msg.upper()  #转换 string 中的小写字母为大写

'WANGCHUANG'

>>> msg.lower()  #转换 string 中所有大写字符为小写.

'wangchuang'

>>> msg.swapcase() #大小写互换

'wANGcHUANG'

1.3分割成列表

>>> msg = "what's your company's name?"

>>> msg.split()

["what's", 'your', "company's", 'name?']

>>> msg.split("'")      #指定分隔符,默认按空格

['what', 's your company', 's name?']

1.4将列表转换成字符串

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

>>> msg_list

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

>>> ''.join(msg_list)

'abc'

>>> ' '.join(msg_list)   ##以空格分割

'a b c'

>>> '|'.join(msg_list)   ##以|分割

'a|b|c'

1.5检查字符串开头和结尾

以什么值开头和以什么值结尾,是为true假为false

>>> a = 'bcd'

>>> a

'bcd'

>>> a.startswith('a')  #检查开头

False

>>> a.startswith('b')

True

>>> a.endswith('d')  #检查结尾

True

>>> a.endswith('c')

False

1.6替换字符串内容

>>> str = 'wangchuang'

>>> str.replace("wang","hello")

'hellochuang'三

1.7检查字符串开头和结尾

以什么值开头和以什么值结尾,是为true假为false

>>> a = 'bcd'

>>> a

'bcd'

>>> a.startswith('a')  #检查开头

False

>>> a.startswith('b')

True

>>> a.endswith('d')  #检查结尾

True

>>> a.endswith('c')

False

1.8替换字符串内容

>>> str = 'wangchuang'

>>> str.replace("wang","hello")

'hellochuang'

1.9统计字符串里某个字符出现的次数

>>> srt = 'ababab'

>>> srt.count('b')

3

2、列表[ ]

列表list:

  • 查找和插入的时间随着元素的增加而增加
  • 占用空间小,浪费内存很少
  • 通过下标查询
  • 有序

 定义列表:

  • name_list = ['a', 'b', 'c', 'd']  #直接定义
  • list = [i for i in range(10)]  #使用列表生成式
  • def foo(x):

                return x**x
          list = [foo(i) for i in range(10)]  #生成式里面还可以是函数哦

2.1

>>> name_list[1]

'b'

>>> name_list[2]

'c'

>>> name_list.index('d') #取值对应的下标号

>>> name_list[1:4]

['b', 'c', 'd']

>>> name_list[1:3]  #按范围取值

['b', 'c']

>>> name_list[-2:]  #取最后两个值

['c', 'd']

>>> name_list[:2]  #取前两个

['a', 'b']

2.2

>>> name_list.append('e') #添加数据

>>> name_list

['a', 'b', 'c', 'd', 'e']

>>>
name_list.insert(2,'wang') ##指定位置插入数据

>>> name_list

['a', 'b', 'wang', 'c', 'd', 'e']

>>>
name_list.extend('12345')  #每一个字符都当成一个元素,添加进去

>>> name_list

['a', 'b', 'd', 'e', '1', '2', '3',
'4', '5']

2.3

>>>
name_list.remove('wang')  #按值删除

>>> name_list

['a', 'b', 'c', 'd', 'e']

>>> name_list

['a', 'b', 'c', 'd', 'e']

>>> del name_list[2]           #按下标删除

>>> name_list

['a', 'b', 'd', 'e']

2.4

>>> name_list

['a', 'b', 'd', 'e']

>>>
name_list.reverse()   #反转列表

>>> name_list

['e', 'd', 'b', 'a']

3、元组 ( )

元组只读,不可修改

>>> msg = ('a','b','c')

>>> msg[0]

'a'

>>> list(msg)    #元组转换成列表

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

>>> tuple(a)  #列表转换成元组

('a', 'b', 'c')

4、字典 { }

字典dict:

  • 查找和插入的速度极快,不会随着key的增加而增加
  • 需要占用大量的内存,内存浪费多
  • Key不可变
  • 默认无序

4.1字典增删改查

>>> dic =
{'a':1,'b':2,'name':'wangchuang'}

>>> dic['name']   #查看

'wangchuang'

>>> dic.get('name') #get查看,就算没有这个键,也不会报错

'wangchuang'

>>> dic['c'] = 3   #增加

>>> dic

{'a': 1, 'c': 3, 'b': 2, 'name':
'wangchuang'}

>>> dic['c'] = 33  #修改

>>> dic

{'a': 1, 'c': 33, 'b': 2, 'name':
'wangchuang'}

>>> dic.pop('c')   #删除

33

>>> dic

{'a': 1, 'b': 2, 'name':
'wangchuang'}

del dic['name'] #删除

 

4.2字典详细用法

>>> dic.has_key('name')  #有该键返回true,否则false

True

>>> dic.get('name')  #get查看,就算没有这个键,也不会报错

'wangchuang'

>>> dic.get('name', 'wang')  #如果没有,就返回‘wang‘,有就返回原来的值

'wangchuang'

>>> dic.items() 
#将所有的字典项以列表方式返回

[('a', 1), ('b', 2), ('name',
'wangchuang')]

>>> dic.keys() 
#显示keys

['a', 'b', 'name']

>>> dic.values()  #显示值values

[1, 2, 'wangchuang']

>>> dic.setdefault('stu',1122) #如果字典里没有该键stu,就创建增加stu键,并把值1122赋给stu

1122

>>> dic

{'a': 1, 'stu': 1122, 'b': 2,
'name': 'wangchuang'}

>>>
dic.setdefault('stu',1133)  #如果字典里有该键,就把值取出来

1122

>>> dic

{'a': 1, 'stu': 1122, 'b': 2,
'name': 'wangchuang'}

>>> cid =
{'name':'wc','add':'beijing'}

>>> dic.update(cid)    #合并两个字典,如果键有重复的,cid的就生效

>>> dic

{'a': 1, 'stu': 1122, 'add':
'beijing', 'b': 2, 'name': 'wc'}

>>> name_info

{'age': '22', 'name': 'wang'}

>>> name_info2 = name_info

>>> name_info2

{'age': '22', 'name': 'wang'}

>>> name_info2['age'] =
44   #修改为44

>>> name_info

{'age': 44, 'name': 'wang'}

#以上name_info和name_info2某一个里面的元素,另一个也跟着变,类似于软链接

#下面使用copy就不会了,直接复制一份,对某一个操作不会影响另一个

>>> name_info3 =
name_info.copy()

>>> name_info3

{'age': 44, 'name': 'wang'}

>>> name_info3['age'] =
88  #修改为88

>>> name_info3

{'age': 88, 'name': 'wang'}

>>> name_info

{'age': 44, 'name': 'wang'}     #值没有变

5、SET集合

特点:

  • 无序
  • 元素不重复

功能:

  • 关系测试
  • 去重

集合对象是一组无须排列的可哈希的值,集合成员可以做字典的键

x =
{1,2,3,4}  #和字典一样,都是用{ }。Python2.6版本貌似不支持

 

5.1 更新集合

增:add update

>>> x.add(3)   #再添加个重复的3

>>> x

set([1, 2, 3, 4])   #结果添加不上

>>> x.update('wang')  #添加多个元素

>>> x

{'w', 1, 2, 3, 4, 'g', 'a', 'n'}

>>> x.add('chuang')  #一次只能添加一个元素

>>> x

{'w', 1, 2, 3, 4, 'g', 'a', 'n',
'chuang'}

删:remove pop

>>>
x.pop()  #删除

1

>>> x

set([2, 3, 4])

5.2
关系测试:交,并,差,对称差

>>> x =
{1,2,3,4}

>>> y =
{3,4,5,6}

>>> x &y  #取交集

set([3, 4])

>>> x | y  #取并集

set([1, 2, 3, 4, 5, 6])

>>> x - y
#求x与y之间的差集,我是x,y没有1,2

set([1, 2])

>>> y - x #求y与x之间的差集,我是y,x没有5,6

set([5, 6])

>>> x ^ y #对称差集

set([1, 2, 5, 6])

5.3
子集、超集

>>> x =
{1,2,3,4}

>>> z = {2,3,4}

>>>
z.issubset(x) #x包含z,所以z是x的子集

True

>>>
z.issuperset(x) #z是否包含x,x不是z的超集

False

最新文章

  1. [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)
  2. 用Kotlin开发Android应用(II):创建新项目
  3. genymotion不能联网
  4. Aix下如何运行Java程序
  5. 淘宝(阿里百川)手机客户端开发日记第六篇 Service详解(六)
  6. HTML5:离线存储(缓存机制)-IndexDB
  7. 如何让Asp.net Web Api全局预防Xss攻击
  8. WE-1202 (JGX-X5 v1.3)刷openwrt
  9. WebService学习笔记
  10. ISSkin 使用技巧,WinXP 下的窗口阴影
  11. c语言中双维数组与指针的那点事儿
  12. 【jQuery】复选框的全选、反选,推断哪些复选框被选中
  13. UML用例设计
  14. grep -v 反向查找
  15. Java程序设计与数据结构导论--读后感
  16. Spark之UDAF
  17. jquery 设置某div里面的内容为此div里面非img标签的内容
  18. QT多线程简单例子
  19. python threading模块
  20. Android中Serializable和Parcelable序列化对象详解

热门文章

  1. Eclipse_常用技巧_03_字母大小写转换快捷键
  2. BEC listen and translation exercise 34
  3. 如何在Android开发中测试应用在真机上实验
  4. Agc012_E Camel and Oases
  5. [SDOI 2017] 序列计数
  6. XML的二十个热点问题
  7. 反编译工具Reflector下载(集成FileGenerator和FileDisassembler)
  8. Oracle12c多租户如何启动关闭CDB或PDB (PDB自动启动)
  9. Parallel Programming-Task Result &amp;&amp; Continuation Task
  10. HDU4699:Editor