1、列表
1
2
3
4
5
|
names = [ 'Alex' , "Tenglan" , 'Eric' ]
print (names[ 0 ])
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
names = [ "Alex" , "Tenglan" , "Eric" , "Rain" , "Tom" , "Amy" ]
print (names[ 1 : 4 ])
names.append( "xiao" )
print (names)
names.insert( 2 , "强行从Eric前面插入" )
print (names)
names[ 2 ] = "该换人了"
print (names)
|
1
2
3
4
5
6
7
8
9
|
del names[ 2 ]
print (names)
names.remove( "Eric" )
print (names)
names.pop()
print (names)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
b = [ 1 , 2 , 3 ]
names.extend(b)
print (names)
name_copy = names.copy()
print (name_copy)
names = [ 'Alex' , 'Tenglan' , 'Amy' , 'Tom' , 'Amy' , 1 , 2 , 3 ]
print (names.count( "Amy" ))
names[ - 3 ] = '1'
names[ - 2 ] = '2'
names[ - 1 ] = '3'
names.sort()
print (names)
|
1
2
3
4
5
|
names.reverse()
print (names)
print (names.index( "Amy" ))
|
2、元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
语法
names = ("alex","jack","eric")
它只有2个方法,一个是count,一个是index,完毕。
1
2
3
4
5
|
names = ( "alex" , "jack" , "eric" )
print (names.count( "alex" ))
print (names.index( "jack" ))
|
3、字符串操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
name = 'test'
print (name[ 0 ].capitalize())
name = "TeSt"
print (name.casefold())
print (name.center( 50 , "-" ))
print (name.encode())
|
1
2
3
4
5
6
7
|
name = "TeStLi"
print (name.endswith( "Li" ))
print ( "Alex\tLi" .expandtabs( 10 ))
print (name.find( 'A' ))
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
msg = "my name is {}, and age is {}"
print (msg. format ( "alex" , 22 ))
msg = "my name is {1}, and age is {0}"
print (msg. format ( "alex" , 22 ))
msg = "my name is {name}, and age is {age}"
print (msg. format (age = 22 ,name = "ale" ))
print (msg.format_map({ 'name' : 'alex' , 'age' : 22 }))
print (msg.index( 'a' ) )
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
print ( '9aA' .isalnum())
print ( '9' .isdigit())
str = u "this2009"
print ( str .isnumeric())
str = u "23443434"
print ( str .isnumeric())
print ( str .isprintable())
print ( str .isspace())
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
print ( str .isupper())
print ( "|" .join([ 'alex' , 'jack' , 'rain' ]))
intab = "aeiou"
outtab = "12345"
trantab = str .maketrans(intab, outtab)
str = "this is string example....wow!!!"
print ( str .translate(trantab))
print (msg.partition( 'is' ))
print ( "alex li, chinese name is lijie" .replace( "li" , "LI" , 1 ))
|
1
2
3
4
5
6
7
8
9
10
11
12
|
str = "this is string example....wow!!!"
print ( str .swapcase())
print (msg.zfill( 40 ))
print (msg.ljust( 40 , "-" ))
print (msg.rjust( 40 , "-" ))
b = "ddefdsdff_哈哈"
print (b.isidentifier())
|
4、字典操作
字典的特性:
dict是无序的
key必须是唯一的,so 天生去重
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
info = {
'stu1101' : "TengLan Wu" ,
'stu1102' : "LongZe Luola" ,
'stu1103' : "XiaoZe Maliya" ,
}
info[ "stu1104" ] = "Python "
print (info)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
info[ 'stu1101' ] = "test"
print (info)
info.pop( "stu1101" )
print (info)
del info[ 'stu1103' ]
print (info)
info = { 'stu1102' : 'LongZe Luola' , 'stu1103' : 'XiaoZe Maliya' }
info.popitem()
print (info)
info = { 'stu1102' : 'LongZe Luola' , 'stu1103' : 'XiaoZe Maliya' }
print ( "stu1102" in info)
print (info.get( "stu1102" ))
print (info[ "stu1102" ])
|
1
2
3
4
5
6
7
8
|
print (info[ "stu1105" ])
for key in info:
print (key,info[key])
for k,v in info.items():
print (k,v)
|
5、集合操作
集合是一个无序的,不重复的数据组合,它的主要作用如下:
去重,把一个列表变成集合,就自动去重了
关系测试,测试两组数据之前的交集、差集、并集等关系
1
2
3
4
5
6
7
8
9
10
|
s = set ([ 3 , 5 , 9 , 10 ])
t = set ( "Hello" )
a = t | s
b = t & s
c = t – s
d = t ^ s
|
基本操作:
1
2
3
4
5
6
7
8
9
|
t.add( 'x' )
s.update([ 10 , 37 , 42 ])
使用remove()可以删除一项:
t.remove( 'H' )
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
len (s)
set 的长度
x in s
测试 x 是否是 s 的成员
x not in s
测试 x 是否不是 s 的成员
s.issubset(t)
s < = t
测试是否 s 中的每一个元素都在 t 中
s.issuperset(t)
s > = t
测试是否 t 中的每一个元素都在 s 中
s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素
s.intersection(t)
s & t
|
1
2
3
4
5
6
7
8
9
10
11
12
|
返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素
s.copy()
返回 set “s”的一个浅复制
|
6、文件操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
f = open ( 'lyrics' )
first_line = f.readline()
print ( 'first line:' , first_line)
print ( '我是分隔线' .center( 50 , '-' ))
data = f.read()
print (data)
f.close()
|
7、字符编码与转码
需知:
1.在python2默认编码是ASCII, python3里默认是unicode
2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
1
2
3
4
5
6
7
8
9
10
|
python2
import sys
print (sys.getdefaultencoding())
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
msg = "我爱北京天安门"
msg_gb2312 = msg.decode( "utf-8" ).encode( "gb2312" )
gb2312_to_gbk = msg_gb2312.decode( "gbk" ).encode( "gbk" )
print (msg)
print (msg_gb2312)
print (gb2312_to_gbk)
python3
import sys
print (sys.getdefaultencoding())
|
1
2
3
4
5
6
7
8
9
|
msg = "我爱北京天安门"
msg_gb2312 = msg.encode( "gb2312" )
gb2312_to_unicode = msg_gb2312.decode( "gb2312" )
gb2312_to_utf8 = msg_gb2312.decode( "gb2312" ).encode( "utf-8" )
print (msg)
print (msg_gb2312)
print (gb2312_to_unicode)
print (gb2312_to_utf8)
|
本文转自 corasql 51CTO博客,原文链接:http://blog.51cto.com/corasql/1910454,如需转载请自行联系原作者