Python-字符串列表字典 元组集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-字符串列表字典 元组集合相关的知识,希望对你有一定的参考价值。

版权声明:


本文作者为—陈鑫

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

QQ: 499741233

E-mail: [email protected]


第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 \\nLine2-abc \\nLine4-abcd";

print (str.split( ))

print (str.split( , 1 ))

结果:

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

[Line1-abcdef, \\nLine2-abc \\nLine4-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)

 


以上是关于Python-字符串列表字典 元组集合的主要内容,如果未能解决你的问题,请参考以下文章

Python之列表元组字典集合及字符串的详细使用

python数据结构之列表字典元组集合

Python基础数据结构:列表 | 元组 | 集合 | 字典

Python基础数据结构:列表 | 元组 | 集合 | 字典

对比Python中的列表元组字典集合字符串等之间异同

Python 基础入门笔记———— 字符串列表元组集合字典