Python入門編(四)の文字列、辞書、集合
1、文字列操作
文字列は変更できません.クエリーとしてのみ使用できます.pythonでは、引用符を付けた文字が文字列タイプであり、pythonには文字タイプはありません.定義:name='kim'#name=str('kim')は、名前、性別、国籍、人種などの記述的な内容を識別するために使用されます.単引用符、二重引用符、多引用符の違いは何ですか.大きな声で教えてあげましょう.一重引用符木には何の違いがありますか.次のような場合だけ、一重の協力
多引用符の役割は何ですか.複数行の文字列は、複数引用符
2、辞書操作
辞書はkey-valueのデータ型で、私たちが学校で使いたい辞書を使って、筆画、アルファベットで対応ページの詳細を差します.辞書はネストリストを{}内でカンマで区切ることができ、複数のkey:valueの値を格納することができ、valueは任意のタイプ定義:info={'name':'egon','age':18,'sex':18}info=dict({'name':'egon','age':18,'sex':18})で、複数の値を格納する場合、各値に一意の対応するkeyがあり、より効率的に値を取得することができる
2.1、文法:
2.2、辞書の特性:
(1)dictは無秩序であり,辞書には下付き文字がなく,下付き文字も必要ない.(2)keyは唯一でなければならない、so、生まれつき重くなる
2.3、辞書の操作
(1)増加
(2)修正
(3)削除
(4)検索
(5)マルチレベル辞書のネストと操作
(6)その他の操作
(7)循環辞書dict
2.4、プログラム練習
プログラム:三級メニュー
要件:
1.省、市、県の三級メニューを印刷する.前のレベル3に戻ることができます.いつでもプログラムがlowのプログラムを脱退することができて、ただ练习して、本気にしないでください~!
ショッピングカートのプログラムの最適化:ユーザーの入り口:1、商品情報はファイルの中に存在します2、すでに購入した商品、残高記録ユーザーの入り口:1、商品を追加することができて、商品の価格を修正します
3、集合操作
集合は無秩序で、重複しないデータの組み合わせで、その主な役割は以下の通りです:重さを除去して、1つのリストを集合に変えて、自動的に関係テストを重させて、2組のデータの前の交差、差セット、並列セットなどの関係をテストします
3.1、集合脱重機能
3.2、関係テスト
3.3、基本操作
(1)項目の追加
(2)複数項目追加
(3)アイテムを削除し、removeで存在しないアイテムを削除するとエラーが発生し、discardでエラーが発生しない
(4)ランダム削除
(5)setの長さ
(6)xがsのメンバであるか否かを判断する
(7)コピー
参考リンク:金角大王
文字列は変更できません.クエリーとしてのみ使用できます.pythonでは、引用符を付けた文字が文字列タイプであり、pythonには文字タイプはありません.定義:name='kim'#name=str('kim')は、名前、性別、国籍、人種などの記述的な内容を識別するために使用されます.単引用符、二重引用符、多引用符の違いは何ですか.大きな声で教えてあげましょう.一重引用符木には何の違いがありますか.次のような場合だけ、一重の協力
msg = "My name is Kim , I'm 18 years old!"
を考慮する必要があります.多引用符の役割は何ですか.複数行の文字列は、複数引用符
msg = '''
,
,
,
。
'''
print(msg)
でなければなりません.#!/usr/bin/python
# _*_ coding:utf-8 _*_
# Aothr: Kim
name = 'my name is {name} and i am {years} old'
print(name.capitalize()) #
==> :My name is {name} and i am {years} old
print(name.count("a")) # a
=> :5
print(name.center(50,"-")) # 50 , - ,
=> :------my name is {name} and i am {years} old------
print(name.endswith("x")) # , .com ,
=> :False
print(name.expandtabs(tabsize=30)) #tab
=> :
print(name.find("name")) # ,name my name....(m-->0,y-->1......)
=> :3
print(name[name.find("y"):]) # , y
=> :y name is {name} and i am {years} old
print(name.format(name='alex',years='23')) #
=> :my name is alex and i am 23 old
print(name.format_map( {'name':'alex','years':12} )) #
=> :my name is alex and i am 23 old
print(name.index("and")) #
=> :18
print('ab123'.isalnum()) #
=> :True
print('abA'.isalpha())
=> :True
print('1.22'.isdecimal()) #
=> :False
print('1A'.isdigit()) #
=> :False
print('222'.isidentifier()) # ,
=> :False
print('a'.islower()) #
=> :True
print('2AAA'.isupper() #
=> :False
print('+'.join( ['1','2','3']) )
=> :1+2+3
print( name.ljust(50,'*') ) # 50 , *
=> :my name is {name} and i am {years} old************
print( name.rjust(50,'-') ) # 50 , -
=> :------------my name is {name} and i am {years} old
print('Alex'.lower()) #
=> :alex
print('Alex'.upper()) #
=> :ALEX
print('
Alex'.lstrip()) #
=> :Alex
print('Alex
'.rstrip()) #
=> :Alex
print(' Alex
'.strip()) #
=> :Alex
p = str.maketrans("abcdef","123456") # , (a-->1,b-->2,c-->3, )
print("alex li".translate(p))
=> :1l5x li
print('alex li'.replace('l','L',1)) #
=> :aLex li
print('alex li'.rfind('l')) # ,
=> :5
print('al ex lil'.split('l')) # l
=> :['a', ' ex ', 'i', '']
print('1+2+3+4'.split('
')) #
=> :['1+2+3+4']
print('1+2
+3+4'.splitlines()) #
=> :['1+2', '+3+4']
print('Alex Li'.swapcase()) # ,
=> :aLEX lI
print('alex li'.title()) #
=> :Alex Li
print('alex li'.zfill(50)) #
=> :0000000000000000000000000000000000000000000alex li
2、辞書操作
辞書はkey-valueのデータ型で、私たちが学校で使いたい辞書を使って、筆画、アルファベットで対応ページの詳細を差します.辞書はネストリストを{}内でカンマで区切ることができ、複数のkey:valueの値を格納することができ、valueは任意のタイプ定義:info={'name':'egon','age':18,'sex':18}info=dict({'name':'egon','age':18,'sex':18})で、複数の値を格納する場合、各値に一意の対応するkeyがあり、より効率的に値を取得することができる
2.1、文法:
info = {
'stu1101':"Zhang san"
'stu1102':"Li si"
'stu1103':"Wang wu"
}
print(info)
print(info["stu1101"]) #
:
{'stu1102': 'Li si', 'stu1103': 'Wang wu', 'stu1101': 'Zhang san'}
Zhang san
2.2、辞書の特性:
(1)dictは無秩序であり,辞書には下付き文字がなく,下付き文字も必要ない.(2)keyは唯一でなければならない、so、生まれつき重くなる
:
info = {
'stu1101':"Zhang san"
'stu1102':"Li si"
'stu1103':"Wang wu"
}
2.3、辞書の操作
(1)増加
info['stu1104'] = "KIM"
print(info)
:
{'stu1101': 'Zhang san', 'stu1104': 'KIM', 'stu1103': 'Wang wu', 'stu1102': 'Li si'}
(2)修正
info['stu1101'] = "Grace"
print(info)
:
{'stu1102': 'Li si', 'stu1103': 'Wang wu', 'stu1104': 'KIM', 'stu1101': 'Grace'}
(3)削除
del info["stu1101"]
info.pop("stu1101") #
info.popitem() #
print(info)
:
{'stu1103': 'Wang wu', 'stu1102': 'Li si'}
(4)検索
print("stu1102" in info) # stu1102 info
:True
print(info.get("stu1101")) #
print(info["stu1101"]) # get , key , ,get , none
:
Zhang san
Zhang san
print(info.get('stu1106'))
:None
print(info["stu1106"])
:KeyError: 'stu1106'
(5)マルチレベル辞書のネストと操作
av_catalog = {
" ":{
"www.youporn.com": [" , "," "],
"www.pornhub.com": [" , "," yourporn "],
"letmedothistoyou.com": [" , "," , "],
"x-art.com":[" , "," , "]
},
" ":{
"tokyo-hot":[" , "," "]
},
" ":{
"1024":[" , , "," , "]
}
}
av_catalog[" "]["1024"][1] = " " #
print(av_catalog)
:
{' ': {'1024': [' , , ', ' ']}, ' ': {'letmedothistoyou.com': [' , ', ' , '], 'x-art.com': [' , ', ' , '], 'www.pornhub.com': [' , ', ' yourporn '], 'www.youporn.com': [' , ', ' ']}, ' ': {'tokyo-hot': [' , ', ' ']}}
av_catalog[" "]["1024"][1] += ", " #
print(av_catalog[" "]["1024"]) # --1024
:
[' , , ', ' , ']
(6)その他の操作
info = {
'stu1101':"Zhang san",
'stu1102':"Li si",
'stu1103':"Wang wu",
}
(1)values
print(info.values()) # value
:dict_values(['Li si', 'Zhang san', 'Wang wu'])
(2)keys
print(info.keys()) # key
:dict_keys(['stu1103', 'stu1102', 'stu1101'])
(3)setdefault , , , 。
info.setdefault("stu1106","Alex") #
print(info)
:{'stu1102': 'Li si', 'stu1103': 'Wang wu', 'stu1106': 'Alex', 'stu1101': 'Zhang san'}
info.setdefault("stu1102","Alex")
print(info)
:{'stu1101': 'Zhang san', 'stu1102': 'Li si', 'stu1103': 'Wang wu'}
(4)update
info = {
'stu1101':"Zhang san",
'stu1102':"Li si",
'stu1103':"Wang wu",
}
b = {
"stu1104":"xiaoqiang",
1:2,
3:4
}
info.update(b) # b info
print(info)
:{'stu1103': 'Wang wu', 3: 4, 'stu1102': 'Li si', 1: 2, 'stu1101': 'Zhang san', 'stu1104': 'xiaoqiang'}
(5)items
print(info.items()) #
:
dict_items([('stu1102', 'Li si'), ('stu1101', 'Zhang san'), ('stu1103', 'Wang wu')])
(7)循環辞書dict
:
info = {
'stu1101':"Zhang san",
'stu1102':"Li si",
'stu1103':"Wang wu",
}
for i in info:
print(i,info[i])
:
stu1101 Zhang san
stu1102 Li si
stu1103 Wang wu
:
for k,v in info.items(): # dict list,
print(k,v)
:
stu1102 Li si
stu1103 Wang wu
stu1101 Zhang san
2.4、プログラム練習
プログラム:三級メニュー
要件:
1.省、市、県の三級メニューを印刷する.前のレベル3に戻ることができます.いつでもプログラムがlowのプログラムを脱退することができて、ただ练习して、本気にしないでください~!
#!/usr/bin/python
# _*_ coding:utf-8 _*_
# Aothr: Kim
info = {
" ":{
" ":{
" ":[" "," "],
" ":[" "," "],
" ":[" "," "]},
" ":{
" ":[" "," "],
" ":[" "," "],
}
},
" ":{
" ":{
" ":[" "," "]}
},
" ":{
" ":{
" ":[" "," "],}
}
}
exit_flag = False #
while True:
for i in info:
print(i)
province = input(" :")
if province in info:
while True:
for i2 in info[province]:
print("\t", i2)
city = input(" b, q, :")
if city in info[province]:
while True:
for i3 in info[province][city]:
print("\t\t", i3)
area = input(" b, q, :")
if area in info[province][city]:
while True:
for i4 in info[province][city][area]:
print(i4)
site = input(" b, q, :")
if site in info[province][city][area]:
print(" ......
")
back = input(" , b , q:")
if back == "b":
pass
elif back == "q":
exit()
elif site == 'q':
exit()
elif site == 'b':
break
else:
print(" , :")
elif area == 'q':
exit()
elif area == 'b':
break
else:
print(" , :")
elif city == 'q':
exit()
elif city == 'b':
break
else:
print(" , :")
elif province == 'q':
exit()
else:
print(" , :")
ショッピングカートのプログラムの最適化:ユーザーの入り口:1、商品情報はファイルの中に存在します2、すでに購入した商品、残高記録ユーザーの入り口:1、商品を追加することができて、商品の価格を修正します
3、集合操作
集合は無秩序で、重複しないデータの組み合わせで、その主な役割は以下の通りです:重さを除去して、1つのリストを集合に変えて、自動的に関係テストを重させて、2組のデータの前の交差、差セット、並列セットなどの関係をテストします
3.1、集合脱重機能
list_1 = [1,4,5,7,3,6,7,9] -->
list_1 = set(list_1)-->
print(list_1,type(list_1)) --> 7
:{1, 3, 4, 5, 6, 7, 9}
3.2、関係テスト
list_1 = [1,4,5,7,3,6,7,9]
list_1 = set(list_1)
list_2 =set([2,6,0,66,22,8,4])
#
print(list_1.intersection(list_2))
print(list_1 & list_2) --> , “&”
:{4, 6}
#
print(list_1.union(list_2))
print(list_1 | list_2) --> , “|”
:{0, 1, 2, 3, 4, 5, 6, 7, 66, 9, 8, 22}
# ,in list_1 but not in list_2
print(list_1.difference(list_2))
print(list_2.difference(list_1))
print(list_1 - list_2) --> , “-”
print(list_2 - list_1)
:
{1, 3, 5, 9, 7}
{0, 8, 2, 66, 22}
#
list_3=set([1,3,7])
print(list_3.issubset(list_1)) --> list_3 list_1
print(list_1.issuperset(list_2)) --> list_1 list_2
:True False
#
list_1 = set([1,4,5,7,3,6,7,9])
list_2 =set([2,6,0,66,22,8,4])
print(list_1.symmetric_difference(list_2)) -->
print(list_1 ^ list_2) --> , “^”
:{0, 1, 2, 66, 3, 5, 7, 8, 9, 22}
#
list_3=set([1,3,7])
list_4 = set([5,6,8,7])
print(list_3.isdisjoint(list_4))
:True
3.3、基本操作
(1)項目の追加
list_1 = set([1,4,5,7,3,6,7,9])
print(list_1.add(999))
:{1, 3, 4, 5, 6, 7, 999, 9}
(2)複数項目追加
print(list_1.update([888,777,555]))
:{1, 3, 4, 5, 6, 7, 9, 777, 555, 888}
(3)アイテムを削除し、removeで存在しないアイテムを削除するとエラーが発生し、discardでエラーが発生しない
list_1.remove(888) --->
list_1.discard(888) --->
print(list_1)
:{1, 3, 4, 5, 6, 7, 9, 777, 555}
list_1.remove(89999)
:KeyError: 89999
(4)ランダム削除
list_1 = set([{1, 3, 4, 5, 6, 7, 9, 777, 555, 888}])
print(list_1.pop()) #
print(list_1.pop())
print(list_1.pop())
:
1
3
4
(5)setの長さ
list_1 = set([{1, 3, 4, 5, 6, 7, 9, 777, 555, 888}])
print(len(list_1))
:10
(6)xがsのメンバであるか否かを判断する
list_1 = set([{1, 3, 4, 5, 6, 7, 9, 777, 555, 888}])
print(666 in list_1)
print(666 not in list_1)
:
False
True
(7)コピー
list_1 = set([{1, 3, 4, 5, 6, 7, 9, 777, 555, 888}])
list_9 = list_1.copy()
print(list_9)
:{1, 3, 4, 5, 6, 7, 9, 777, 555, 888}
参考リンク:金角大王