Python入門編(四)の文字列、辞書、集合

14198 ワード

1、文字列操作
文字列は変更できません.クエリーとしてのみ使用できます.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}

参考リンク:金角大王