Python(二)-字符串、列表、字典 、元组、集合

版权声明:


本文作者为—陈鑫

本文的所有内容均来陈鑫总结,未经本人许可,禁止私自转发及使用。

QQ: 499741233

E-mail: 499741233@qq.com


第1章 字符串处理

1.1 字符串转换

1.1.1 format() 字符串格式化

描    述:

       1、花括号声明{}、用于渲染前的参数引用声明,花括号里面可以用数字代表引用参数的序号,或者变量直接引用。

       2、从format参数引入的变量名。

       3、冒号:为空格填充

       4、字符位数声明。

       5、千分位的声明。

       6、变量类型的声明:字符串s、数字d、浮点数f

       7、对齐方向符号: < 左对齐,>右对齐,^居中对齐。

       8、属性访问符中括号:

       9、使用惊叹号!后接a、r、s,声明是使用何种模式,acsii码模式,引用repr或str

       10、增加类魔法函数,__format__(self,format),可以根据format前的字符串格式来制定不同的现实,如:'{:xxxxx}'此时xxx回作为参数传入__format__函数中。

实    例:

       1、千分位、浮点数、填充字符、对齐的组合使用

#针对数字

#!/usr/bin/env python
name = '{:>20,.3f}' #表示以空格(:)为填充符,右对齐(>)20个字符,浮点(.3)精确读为3个,f为浮点数声明
name_1 = name.format(1234567)
print(name_1)

结果:

       1,234,567.000

       2、复杂数据格式化

#针对列表

#!/usr/bin/env python
data = [4,8,15,16,24,67]
print('{d[2]} {d[0]}'.format(d=data))

结果:

    15 4

1.1.2 capitalize() 第一个字母变大写

描    述:将字符串的第一个字母变为大写字母(不是每个单词的首字母,而是一对双引号引起来的一组字符串)

输出结果;str

实    例:

#!/usr/bin/env python3

name = "chenxin chenxing wo ai ni"

 

name1 = name.capitalize()

print(name1)

 

结    果:

 

Chenxin chenxing wo ai ni

1.1.3 casefold() 所有字母为小写

描    述:将字符串所有字母变为小写。

输出结果:str

实    例:

#!/usr/bin/env python3

name = "NI SHI SHA BI ME?"

name1 = name.casefold()

print(name1)

结    果:
ni shi sha bi me?

1.1.4 swapcase()字母的大小写字符转换

描    述:用于对字符串的大小写字母进行转换

输出结果:str

实    例:

str = "this is string example....wow!!!";
print (str.swapcase())

str = "THIS IS STRING EXAMPLE....WOW!!!";
print (str.swapcase())

结    果:

THIS IS STRING EXAMPLE....WOW!!!

this is string example....wow!!!

1.1.5 title()将所有单词的字母大写

描    述:方法标题化的字符串,就是说所有单词都是以大写开始,其余字母均为小写。

输出结果:str

实    例:

#!/usr/bin/python
str = "this is string example....wow!!!";

print (str.title())

结   果:

This Is String Example....Wow!!!

1.1.6 lower() 将所有大写转换为小写

描    述:转换字符串所有大写字符为小写

语    法:S.lower()

输出结果:字符串str

实    例:

#!/usr/bin/env python

name = "CHENXIN"

name1 = name.lower()

print(name1)
结果:
chenxin

1.2 字符串显示位置

1.2.1 center() 居中显示

描    述:指定输出n个字符,返回的原来字符居中现实,其他字符可指定填充,默认为空格。

输出结果:str

实    例:

#!/usr/bin/env python3

name = "chenxin"

name1 = name.center(20,'a')

print(name1)

str = "this is string example....wow!!!";

print ("str.center(80, 'a') : ",str.center(80, 'a'))

结    果:

aaaaaachenxinaaaaaaa

str.center(80, 'a') :  aaaaaaaaaaaaaaaaaaaaaaaathis is string example....wow!!!aaaaaaaaaaaaaaaaaaaaaaaa

1.2.2 ljust() 左对齐

描    述:指定输出n个字符,返回原来字符串左对齐显示,其他字符可指定也可默认,默认为空格。

语    法:S.ljust(width[, fillchar])

参    数:width=字符串的总长度,fillchar=填充的字符

输出结果:str

实    例:

#!/usr/bin/env python

name = "chenxin"

name1 = name.ljust(20,'a')

print(name1)

结   果:

chenxinaaaaaaaaaaaaa

1.2.3 rjust() 右对齐

描   述:右对齐显示,指定填充字符,默认为空格

输出结果:str

输出结果:

#!/usr/bin/python

str = "this is string example....wow!!!";

print (str.rjust(50, '0'))

结果:

000000000000000000this is string example....wow!!! 

1.3 字符串切割

1.3.1 partition()指定分割符分割字符串

描    述:

       方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

输出结果:返回一个3元的元组,str

实    例:

#!/usr/bin/python

str = "http://www.w3cschool.cc/"

print (str.partition("://"))

结果:

'http', '://', 'www.w3cschool.cc/')

1.3.2 rsplit切片

描    述:指定分割符对字符串进行切片

输出结果:list

实    例:

#!/usr/bin/python

 

str = "Line1-abcdef 
Line2-abc 
Line4-abcd";

print (str.split( ))

print (str.split(' ', 1 ))

结果:

['Line1-abcdef', 'Line2-abc', 'Line4-abcd']

['Line1-abcdef', '
Line2-abc 
Line4-abcd']

1.3.3 rstrip()删除空格和换行符

描    述:删除字符串末尾的指定字符串,默认是为空格和换行符

输出结果:str

1.3.4 strip() 删除头尾指定字符

描    述:方法用于移除字符串头尾指定的字符(默认为空格)

输出结果:str

实    例:

#!/usr/bin/python

str = "0000000this is string example....wow!!!0000000";

print (str.strip( '0' ))

结果:

this is string example....wow!!!

1.3.5 count() 统计

描    述:方法用来统计,必须填写关键字,默认为从头到尾。

输出结果:int

实    例:

#!/usr/bin/env python

name = 'chenxin'

name1 = name.count('e',0,4)

print(name1)

结    果:

1

1.3.6 encode() 转换字符编码

描    述:方法encoding指定的编码格式编码字符串,

1.4 字符串判断

1.4.1 startswith()判断是否已指定字符开头

描    述:方法用于判断字符串是否是以指定的字符串开头

输出结果:Ture,False

实    例:

#!/usr/bin/python

str = "this is string example....wow!!!";

print (str.startswith( 'this' ))

print (str.startswith( 'is', 2, 4 ));

print (str.startswith( 'this', 2, 4 ));

结果:

True

True

False

1.4.2 endswith() 判断是否以指定后缀结尾

描    述:方法用于判断字符串是否以指定后缀结尾。

输出结果:Ture,False

实    例:

#!/usr/bin/python

str = "this is string example....wow!!!";

suffix = "wow!!!";

print (str.endswith(suffix))

print (str.endswith(suffix,20))

suffix = "is";

print str.endswith(suffix, 2, 4);

print str.endswith(suffix, 2, 6);

结    果:

True

True

True

False

1.4.3 isalnum() 判断是否由字母和数字组成

描    述:检测一组字符串(整个字符串,而不是一个单词)是否由字符和数字组成

输出结果:True,False

实    例:

#!/usr/bin/env python
name = 'chenxin'
name1 = name.isalnum()
print(name1)
str  = 'this is string example....wow!!!'
str1 = str.isalnum()
print(str1)

结果:
True
False

1.4.4 isalpha() 判断是否只有字母组成

描    述:检测字符串是否只有字母组成

输出结果:True,False

实    例:

#!/usr/bin/env python

name = 'chenxin'

name1 = name.isalpha()

print(name1)

 

str = 'chen12'

str1 = str.isalpha()

print(str1)

 

结果:

 

True

 

False

1.4.5 isdecimal() 判断是否只含十进制字符

描    述:检测字符串是否只包含十进制字符,这种方法址存在unicode对象,定义一个十进制字符串,只需要在字符串前面加'u'前缀即可。

输出结果:True,False

实    例:

#!/usr/bin/env python

name = "123456"

name1 = name.isdecimal()

print(name1)

str = "chenxin"

print(str.isdecimal())

结果:

True 

False
View Code

1.4.6 isdigit() 判断是否只是数字

描    述:检测字符串是否只由数字组成

输出结果:True,False

1.4.7 isidentifier()判断是否合法的标识符

描    述:判断字符串是否是合法的标识符,字符串仅包含中文字符合法,实际上这里判断的是变量名是否合法:

输出结果:True,False

1.4.8 islower() 判断是否由小写字母组成

描    述:检测字符串是否只有小写字母组成

输出结果:True,False

1.4.9 isnumeric() 判断只包含数字

描述:判断只由数字组成,数字字符范围很大,比较isdigit范围大

输出结果:True,False

1.4.10 isprintable() 判断是否全部可打印

描    述:判断字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如转义字符

输出结果:True,False

1.4.11 isspace() 判断只包含空格或制表符

描    述:判断字符串是否仅包含空格或制表符。注意:空格字符与空白是不同的

返回结果:True,False

1.4.12 istitle()判断首字母大写

描    述:检测字符串所有单词拼写字母是否首字母大写,其他字母小写。

输出结果:返回True或False

1.4.13 isuppe()判断是否都是大写

描    述:检测字符串是否都为大写。

输出结果:返回True或False

1.5 字符串查找替换

1.5.1 join()

描    述:使用连接符str来连接iterable对象中的元素,返回一个被str连接起来的,由iterable对象的元素组成的字符串。如果传入一个非iterable对象,如整数、布尔值等,将返回Type Error。

输出结果:str

1.5.2 replace()替换

描    述:方法把字符串的原字符串替换成新字符串。

输出结果:str

实    例:

#!/usr/bin/python

str = "this is string example....wow!!! this is really string";
print (str.replace("is", "was"))
print (str.replace("is", "was", 3))

结果:

thwas was string example....wow!!! thwas was really string

thwas was string example....wow!!! thwas is really string
View Code

1.5.3 find() 查找

描    述:检测字符串中是否包含想要查找的字符。如果包含字符串返回字符串的索引值,否则返回-1

输出结果:索引或-1

实    例:

#!/usr/bin/env python

name = 'chenxin shi da hao ren.'

name1 = name.find('hao',20)

print(name1)

 

name2 = name.find('hao',10)

print(name2)

 

结    果:

-1

15
View Code

1.5.4 index() 查找

描    述:检测字符串中是否包含子字符串str

输出结果:索引值或报错

#!/usr/bin/python

 

str1 = "this is string example....wow!!!";

str2 = "exam";

 

print str1.index(str2);

print str1.index(str2, 10);

print str1.index(str2, 40);

结   果:

15

15
View Code

1.5.5 lstrip()用来截掉字符串左边的空格或者指定符

描    述:用来截掉字符串左边的空格或者指定字符

返回结果:str

实    例:

#!/usr/bin/python

 

str = "     this is string example....wow!!!     ";

print str.lstrip();

str = "88888888this is string example....wow!!!8888888";

print str.lstrip('8');

结果:

this is string example....wow!!!

this is string example....wow!!!8888888
View Code

1.5.6 macketrans()

描    述:方法用于创建字符映射的转换表,对弈接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换字符,第二个参数也是字符串表示转换的目标。

参    数:

       intab---字符串中要替代的字符组成的字符串。

       outtab---相应的映射字符的字符串

输出结果:str

实    例:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

from string import maketrans   # 必须调用 maketrans 函数。

 

intab = "aeiou"

outtab = "12345"

trantab = maketrans(intab, outtab)

 

str = "this is string example....wow!!!";

print str.translate(trantab);

结果:

th3s 3s str3ng 2x1mpl2....w4w!!!
View Code

第2章 list列表

2.1 增

2.1.1 append()

描    述:方法用于往列表里添加元素

输出结果:list

实    例:

names = ['qinfu','123','chenxin','liuqiang']
# #增
names.append('wangxingyu')
print(names)

结果:

['qinfu', '123', 'chenxin', 'liuqiang', 'wangxingyu']
View Code

2.1.2 extend()添加列表

描    述:用来在列表末尾一次性追加另一个列表中的多个值

输出结果:list

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
list = ['cc']
names.extend(list)
print ("Extended List : ",names)

结果:

Extended List :  ['qinfu', '123', 'chenxin', 'liuqiang', 'cc']
View Code

2.2 删

2.2.1 remove()删除

描    述:用来指定字符串删除列表内容

输出结果:list

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
#
names.remove("qinfu")
print(names)

结果

['123', 'chenxin', 'liuqiang']
View Code

2.2.2 del删除

描    述:指定列表索引删除

输出结果:list

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']

del names[2]
print(names)

结果:

['qinfu', '123', 'liuqiang']
View Code

2.3 改

2.3.1 指定索引修改

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
#
names[0]='陈鑫'
print(names)

结果:

['陈鑫', '123', 'chenxin', 'liuqiang']
View Code

2.4 查

2.4.1 指定索引查询

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
# #查
print(names[-2])
print(names[1:4])

结果:

chenxin

['123', 'chenxin', 'liuqiang']
View Code

2.5 插入

2.5.1 insert 插入

描    述:指定索引,在索引前添加内容

输出结果:list

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
# #插入
names.insert(1,"tanshaomeng")
print(names)

结果:

['qinfu', 'tanshaomeng', '123', 'chenxin', 'liuqiang']
View Code

2.6 统计

2.6.1 count

描    述:用来统计数量,只能指定字符串统计个数。

输出结果:int

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
# #统计
print(names.count('liuqiang'))

结果:

1
View Code

2.7 清空

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
# #清空
names.clear()
print(names)

结果:

[]
View Code

2.8 排序

2.8.1 reverse()列表反转

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
# #排序
names.reverse()
print(names)

结果:

['liuqiang', 'chenxin', '123', 'qinfu']
View Code

2.8.2 sort() 按照acsii码表排序

实    例:

#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']
# #排序
names.sort()
print(names)

结果:

['123', 'chenxin', 'liuqiang', 'qinfu']
View Code

2.9 复制

2.9.1 copy()

描     述:复制列表,开辟新的内存空间

实    例:

#/usr/bin/env python

names = ['qinfu','123','chenxin','liuqiang']

# 复制

na = names.copy()

print(names)

del names[2]

print(na)

 

结    果:

 

['qinfu', '123', 'chenxin', 'liuqiang']

 

['qinfu', '123', 'chenxin', 'liuqiang']
View Code

2.9.2 直接使用等号

描    述: 直接使用等号,在小字节的时候与copy一样,但是字节多的时候,等号就会跟着改变

2.10 循环遍历列表

实    例:

#/usr/bin/env python

names = ['qinfu','123','chenxin','liuqiang']

#列表循环

for i in names:

    print(i)

 

结    果:

 

qinfu

 

123

 

chenxin

 

liuqiang

2.11 1循环遍历列表,输出索引

#/usr/bin/env python

names = ['qinfu','123','chenxin','liuqiang']

# #取出列表元素对应商品

for i,ele in enumerate(names):

    print(i,ele)

 

结    果:

 

0 qinfu

 

1 123

 

2 chenxin

 

3 liuqiang
View Code

第3章 dict字典

       字典特点:

                     1、查询速度快

                     2、key唯一

                     3、key是不可变的

                     4、无序的

                     5、必列表内存空间多。

       为什么快与为什么空间大呢?

              Python的hash只是在单个程序或者说一个进程是唯一的。字典是使用hash将字符串变成数字,利用二分算法进行查询的。

3.1 增

3.1.1 setdefault()

描    述:先查询字典中有没有键,如果没有则会加键,值可以指定默认

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#
print(info.setdefault('姓名'))
print(info.setdefault('cx','cx'))
print(info)

结    果:

陈鑫

cx

{'工作': 'IT', 'cx': 'cx', '姓名': '陈鑫', '年龄': '21'}
View Code

3.2 删

3.2.1 pop()

描    述:移除字典数据,删除指定键并值,

返回  值:返回未删除的键,

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#
info.pop('姓名')
print(info)

结    果:

{'工作': 'IT', '年龄': '21'}

dict_keys(['工作', '年龄'])
View Code

3.2.2 popitem()

描    述:随机返回并删除字典中的一对键值,

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#
info.popitem()
print(info)

结    果:

{'姓名': '陈鑫', '年龄': '21'}

dict_keys(['姓名', '年龄'])
View Code

3.3 改

3.3.1 update()更新

描    述:将一个字典更新到另一个字典中

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#
info1 = {'爱好':'足球'}
info.update(info1)
print(info)

结    果:

{'姓名': '陈鑫', '工作': 'IT', '年龄': '21', '爱好': '足球'}
View Code

3.4 查

3.4.1 get查看value值

描    述:返回指定键的值,如果值不存在字典中返回默认值

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#
print ("Value : %s" %  info.get('姓名'))
print ("Value : %s" %  info.get('Sex', "nnnn"))

结    果:

Value : 陈鑫

Value : nnnn
View Code

3.5 清除

3.5.1 clear()

描    述:用来删除字典内所有元素

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}

# 清除
print(len(info))
info.clear()
print(len(info))

结    果:

3

0
View Code

3.6 复制

3.6.1 copy()

描    述:复制字典,如果原字典修改,复制出来的字典不会修改,是新开辟出内存空间

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
# 复制
print(info)
info1 = info.copy()
print(info1)

结    果:

{'工作': 'IT', '年龄': '21', '姓名': '陈鑫'}

{'工作': 'IT', '年龄': '21', '姓名': '陈鑫'}
View Code

3.6.2 等号

描    述:复制字典,两个字典变量指向同一内存空间,在字典大的时候,原字典修改,复制字典也会跟着修改,而不会开辟另一块内存空间

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}

# 复制
info1 = info
print(info1)

结    果:

{'年龄': '21', '姓名': '陈鑫', '工作': 'IT'}
View Code

3.7 初始化字典

3.7.1 fromkeys()

描    述:用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值

返回  值:返回字典

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#初始化
dict = dict.fromkeys(info)
print(dict)
dict = dict.fromkeys(info,10)
print(dict)
print(type(dict))

结    果:

{'年龄': None, '工作': None, '姓名': None}

{'年龄': 10, '工作': 10, '姓名': 10}

<class 'dict'>
View Code

3.8 格式转换

3.8.1 items() 转换元组

描    述:以列表返回可遍历的元组数组

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#转换元组
info_yz = info.items()
print(type(info_yz))
for i in info_yz:
    print(i)

结    果:

<class 'dict_items'>

('年龄', '21')

('姓名', '陈鑫')

('工作', 'IT')
View Code

3.8.2 keys()转换列表

描    述:以列表返回一个字典所有的键

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}

list_dict = info.keys()
print(list_dict)

结    果:

dict_keys(['姓名', '工作', '年龄'])
View Code

3.8.3 values()

描    述:将字典以列表返回到所有值

实    例:

#/usr/bin/env python
info = {
    '姓名':'陈鑫',
    '年龄':'21',
    '工作':'IT'
}
#转换列表
info1 = info.values()
print(info1)

结    果:

dict_values(['21', 'IT', '陈鑫'])
View Code

第4章 元组处理

       元组,是一个只读列表。

4.1 统计

4.1.1 count()

描    述:统计一个元素有在这个元组中有几个

实    例:

#/usr/bin/env python
names = ('chenxin','chenxiang','jinzhong')
print(names.count('chenxin'))

结   果:

1
View Code

4.2 查找

4.2.1 index()

描    述:查找元素的索引值

实    例:

#/usr/bin/env python
names = ('chenxin','chenxiang','jinzhong')
print(names.index('jinzhong'))

结    果:

2
View Code

第5章 set集合

1.去重,把一个列表变成集合,就自动去重了 
2.关系测试,测试两组数据之间的交集,差集,并集等关系。

5.1 创建一个数值集合

list_1 = set([1,4,5,7,3,6,7,9])

list_2 = set([2,6,0,66,22,8,4])
View Code

5.2 交集(list_1 & list_2)

print(list_1.intersection(list_2))

5.3 并集

print(list_1.union(list_2))
View Code

5.4 差集

print(list_1.difference(list_2))

print(list_2.difference(list_1))

5.5 子集

print(list_1.issubset(list_2))

5.6 父集

list_3 = set([1,3,7])

print(list_3.issubset(list_1))  #list_3是list_1的子集

print(list_1.issuperset(list_3))

5.7 对称差集(list_1 ^ list_2)

print(list_1.symmetric_difference(list_2))  #对称差集,互相没有的取出来,去掉两个两个集合中重复的

5.8 反向差集

5.8.1 添加

list_1.add(999)  #添加一项

list_1.update([888,777,555]) #添加多项

print(list_1)

5.8.2 删除

print (list_1.discard(555))  #discard不存在不会报错

print(list_1.remove(888))     #remove不存在,会报错,删掉了也不会返回数据

print(list_1)
原文地址:https://www.cnblogs.com/cxcx/p/6047807.html