字典创建方式
字面量创建
>> > { '优' : 90 , '良' : 80 }
{ '优' : 90 , '良' : 80 }
通过dict()
>> > dict1 = dict ( [ [ '优' , 90 ] , [ '良' , 80 ] , [ '中' , 70 ] ] )
>> > dict1
{ '优' : 90 , '良' : 80 , '中' : 70 }
>> > dict2 = dict ( ( ( '优' , 90 ) , ( '良' , 80 ) , ( '中' , 70 ) ) )
>> > dict2
{ '优' : 90 , '良' : 80 , '中' : 70 }
>> > dict3 = dict ( zip ( [ '优' , '良' , '中' ] , [ 90 , 80 , 70 ] ) )
>> > dict3
{ '优' : 90 , '良' : 80 , '中' : 70 }
通过fromkeys()
>> > dict1 = { } . fromkeys( [ '优' , '良' , '中' ] , '大于60分' )
>> > dict1
{ '优' : '大于60分' , '良' : '大于60分' , '中' : '大于60分' }
>> > dict2 = { } . fromkeys( [ '优' , '良' , '中' ] )
>> > dict2
{ '优' : None , '良' : None , '中' : None }
推导式
>> > dict1 = { n: n** 2 for n in range ( 1 , 5 ) }
>> > dict1
{ 1 : 1 , 2 : 4 , 3 : 9 , 4 : 16 }
字典的操作
>> > dict1 = dict ( zip ( [ '优' , '良' , '中' ] , [ 90 , 80 , 70 ] ) )
>> > dict1
{ '优' : 90 , '良' : 80 , '中' : 70 }
>> > dict1. get( '优' )
90
>> > dict1. get( '差' )
>> > dict1. get( '差' , '没有该键值' )
'没有该键值'
>> > dict1. get( '中' , '没有该键值' )
70
>> > dict1[ '优' ]
90
>> > dict1. items( )
dict_items( [ ( '优' , 90 ) , ( '良' , 80 ) , ( '中' , 70 ) ] )
>> > dict1. keys( )
dict_keys( [ '优' , '良' , '中' ] )
>> > dict1. values( )
dict_values( [ 90 , 80 , 70 ] )
>> > for i in dict1:
print ( i, end = ' ' )
优 良 中
>> > for i in dict1. keys( ) :
print ( i, end = ' ' )
优 良 中
>> > for i in dict1. items( ) :
print ( i, end = ' ' )
( '优' , 90 ) ( '良' , 80 ) ( '中' , 70 )
>> >
>> > dict1
{ '优' : 90 , '良' : 80 , '中' : 70 }
>> > dict2 = { '优' : 100 }
>> > dict1. update( dict2)
>> > dict1
{ '优' : 100 , '良' : 80 , '中' : 70 }
>> > dict3 = dict ( zip ( [ '优' , '良' , '中' ] , [ 90 , 80 , 70 ] ) )
>> > del dict3[ '优' ]
>> > dict3
{ '良' : 80 , '中' : 70 }
>> > del dict3
>> > dict3
Traceback ( most recent call last) :
File "<pyshell#60>" , line 1 , in < module>
dict3
NameError: name 'dict3' is not defined
>> > dict1
{ '优' : 100 , '良' : 80 , '中' : 70 }
>> > dict1. pop( '优' )
100
>> > dict1
{ '良' : 80 , '中' : 70 }
>> > dict1. pop( '优' , '没有该项' )
'没有该项'
>> > dict1
{ '良' : 80 , '中' : 70 }
>> > dict1. popitem( )
( '中' , 70 )
>> >
>> > dict1. popitem( )
( '良' , 80 )
>> >
>> > dict1
{ }
>> >
>> > dict2 = dict ( zip ( [ '优' , '良' , '中' ] , [ 90 , 80 , 70 ] ) )
>> > dict2. clear( )
>> > dict2
{ }
集合创建方式
字面量创建
>> > set1 = { 1 , [ 1 , 2 , 3 ] }
Traceback ( most recent call last) :
File "<pyshell#73>" , line 1 , in < module>
set1 = { 1 , [ 1 , 2 , 3 ] }
TypeError: unhashable type : 'list'
>> > set1 = { 1 , 2 , 'a' , True }
>> > set1
{ 1 , 2 , 'a' }
对象创建
>> > set1 = set ( 'hello' )
>> > set1
{ 'h' , 'e' , 'o' , 'l' }
>> > set2 = set ( [ 1 , 2 , 'a' ] )
>> > set2
{ 1 , 2 , 'a' }
>> > set3 = set ( )
>> > set3
set ( )
>> > set4 = set ( 1 , 2 )
Traceback ( most recent call last) :
File "<pyshell#85>" , line 1 , in < module>
set4 = set ( 1 , 2 )
TypeError: set expected at most 1 arguments, got 2
>> > a = frozenset ( 'hello' )
>> > a
frozenset ( { 'h' , 'e' , 'o' , 'l' } )
推导式
>> > { x* x for x in range ( 1 , 5 ) }
{ 16 , 1 , 4 , 9 }
>> > { 1 , 1.0 }
{ 1 }
集合的操作
>> > set1 = { 9 , 10 , 4 , 6 , 2 , 3 , 1 }
>> > for i in set1:
print ( i, end = ' ' )
1 2 3 4 6 9 10
>> > 1 in set1
True
>> > set1
{ 1 , 2 , 3 , 4 , 6 , 9 , 10 }
>> > set2
{ 8 , 6 , 7 }
>> > set1 | set2
{ 1 , 2 , 3 , 4 , 6 , 7 , 8 , 9 , 10 }
>> > set1 & set2
{ 6 }
>> > set1 - set2
{ 1 , 2 , 3 , 4 , 9 , 10 }
>> > set1 ^ set2
{ 1 , 2 , 3 , 4 , 7 , 8 , 9 , 10 }
>> > set1. union( set2)
{ 1 , 2 , 3 , 4 , 6 , 7 , 8 , 9 , 10 }
>> > set1 == set2
False
>> > set1 > set2
False
>> > len ( set1)
7
>> > max ( set2)
8
>> > set1
{ 1 , 2 , 3 , 4 , 6 , 9 , 10 }
>> > set2
{ 8 , 6 , 7 }
>> > set1. update( set2)
>> > set1
{ 1 , 2 , 3 , 4 , 6 , 7 , 8 , 9 , 10 }
>> > set1
{ 1 , 2 , 3 , 4 , 6 , 7 , 8 , 9 , 10 }
>> > set2 = set1. copy( )
>> > set2
{ 1 , 2 , 3 , 4 , 6 , 7 , 8 , 9 , 10 }
字符串
>> > str1 = 'hello'
>> > len ( str1)
5
>> > str1[ 2 : ]
'llo'
>> > str2 = 'ab'
>> > str1 > str2
True
>> > 2 * str1
'hellohello'
>> > max ( str1)
'o'
编码和解码
>> > str1 = '字符串str的编码和解码操作'
>> > b1 = str1. encode( encoding= 'cp936' )
>> > b1
b'\xd7\xd6\xb7\xfb\xb4\xaestr\xb5\xc4\xb1\xe0\xc2\xeb\xba\xcd\xbd\xe2\xc2\xeb\xb2\xd9\xd7\xf7'
>> > b1. decode( encoding= 'cp936' )
'字符串str的编码和解码操作'
字符串格式化
>> > '结果为:%f' % 88
'结果为:88.000000'
>> > '结果为:%f' % 88.1
'结果为:88.100000'
>> > '姓名:%s,年龄:%d,体重:%3.2f' % ( '鹅鹅鹅' , 19 , 58.5 )
'姓名:鹅鹅鹅,年龄:19,体重:58.50'
>> > '%(lang)s has %(num)03d quote types.' % { 'lang' : 'Python' , 'num' : 2 }
'Python has 002 quote types.'
>> > format ( 81.2 , '0.5f' )
'81.20000'
>> > format ( 81.2 , '%' )
'8120.000000%'
>> > '{2},{1},{0}' . format ( 'a' , 'b' , 'c' )
'c,b,a'
>> > str . format_map( '{name:s},{age:d}' , { 'name' : 'tom' , 'age' : 20 } )
'tom,20'