python關於列表、元組和字符串的有關操做

      今天總結一下列表的一些基本操做以及字符串和字典的操做。python

  1. 列表
 1 name=["張三","趙四","王五","劉德華","周杰倫"]
 2 print(name[1:3])
 3 print(name[-3:-1])
 4 print(name[0])

        這是建立一個列表,並打印的方法。其中第二列是打印列表第二到第三個元素,第三列是打印列表的第三和第四個元素,而第四行是打印列表的第一個元素,很簡單。git

  • 列表的添加

          列表的添加與兩種方法,第一種是使用append()方法,第二種是使用insert()方法。編程

 

name.append("李榮浩")
name.insert(2,"周星馳")

 

         雖然兩種方法均可以添加元素到列表中去,但倒是不一樣的。第一種是直接將「李榮浩」這個元素插入到列表的最後面的位置,而第二種方法是將「周星馳」這個元素查到列表的第三個元素處,這裏的insert()方法有兩個參數,第一個參數就是在列表中要插入的位置。小程序

  • 列表元素的刪除

          列表元素的刪除有三種方法。api

name.remove("周星馳")
del name[2]
name.pop(2)

       第一種是知道要刪除的元素是什麼,直接做爲參數填在remove()方法中便可。第二種是python語言的通用方法,意思是刪除列表的第三個元素。第三種方法與第二種方法同義。app

  • 列表元素的修改

          列表元素修改能夠經過給元素賦值的方法來修改元素,如:ide

name[2]="周迅"
  • 列表元素的查找
print(name.index("周杰倫"))
print(name[name.index("周杰倫")])
print(name.count())

           name.index()方法顯示元素在列表中的序號。spa

列表所具備的方法有不少,使用pycharm編譯環境很容易使用這些方法。下面簡單介紹一些有用的、簡單的方法:code

name.reverse()                             //反轉列表
name.clear()                                 //清空列表,等於  del name
name.sort()                                  //列表排序
name.extend(name2)                    //將列表name2合併到列表name中去

這裏詳細介紹一下copy()方法,由於這裏有一個須要注意的點,若是內有弄清楚,很容易在從此的編程中出現錯誤。blog

import copy
name=["張三","趙四","王五",["李易峯","朱一龍"],"劉德華","周杰倫"]
name2=name.copy()
name3=copy.deepcopy(name)
name2[0]="張八"
name3[3][0]="王一峯"
print(name)
print(name2)
print(name3)

          name是一個既包含元素又包含列表的列表,name2和name3是copy列表name的兩個列表,不一樣的是name2是淺copy,而name3是深copy。name2只copy了列表name的第一層,而其中包含的列表沒有copy進來,只是copy了包含的列表的地址,所以name和name2兩個列表只要有一個列表修改了內層的列表,兩個列表便都修改的列表的內容。可是name3卻不會發生這樣的事情,由於name3是深copy,copy的不僅是內層的列表的地址,而是將內層的列表也copy了一份,所以:name3[3][0]="王一峯"這句語句只改變name3內層的列表而並不改變name的內層列表。       

         固然,淺copy也有用處。淺copy,只copy第一層列表之中能夠包含一層列表,但此時copy只能copy到包含列表的地址,而不能copy到實際內容。

         淺copy有三種方法,其效果相同:

 

p1=copy.copy((person))
p2=person[:]
p3=list(person)

          淺copy的做用:建立聯合帳號

  • 列表的循環:
#列表的循環
for i in name2:
    print(i)

 

       2.元組

  • 元組其實跟列表差很少,也是存一組數,只是他一旦建立,便不能再修改,因此又叫只讀列表。其格式以下:
name=('zhang','wang')

元組只有兩個方法,一個是count,一個是index。使用方法以下:

name=('zhang','wang','zhang','liu')
print(name.count('zhang'))
print(name.index('zhang'))

顯示:2

           0

第一個打印的是元素‘zhang’在元組中的個數,第二個打印的是元素‘zhang’在元組中的最早出現的位置。

下面是運用列表和元組編寫的一個簡單的購物車小程序:

#_Author_ = " Uranus Jerry"


salary=input("your salary:")
if salary.isdigit():
    salary=int(salary)
print("Shopping List")
list=[("IPhone",5000),
      ("Bike",800),
      ("IPad",2000),
      ("Nike",1000),
      ("Book",50),
      ("Watch",2000),
      ("milk",30),
      ("apple",10)
]
shopping_list=[]
while True:
    '''for item in list:
        print(list.index(item),item)'''
    for index, item in enumerate(list):
        print(index,item)
    user_choice=input("選擇要買的商品>>>:")
    if user_choice.isdigit():
        user_choice=int(user_choice)
        if user_choice<len(list) and user_choice>-1:
            p_item=list[user_choice]
            if p_item[1]<=salary:
                salary-=p_item[1]
                shopping_list.append(p_item)
                print(p_item,"已經加入您的購物車,您當前的餘額爲\033[31;1m%s\033[0m"%salary)
            else:
                print("\033[41;1m您的餘額已不足:%s\033[0m"%salary)
        else:
            print("商品不存在...")
    elif user_choice=='q':
        print("-------shoppng list------")
        for p in shopping_list:
            print(p)
        print("您的餘額爲%s"%salary)
        exit()
    else:
        print("invalid choice")

            3.字符串

          字符串的方法總結以下:

#_Author_ = " Uranus Jerry"

name="my \tname is \tUranus"
print(name.capitalize())                   #將name首字母大寫
print(name.count('a'))                     #計算name字符串中‘a'的個數
print(name.center(50,'-'))                #打印50個字符,字符串name放在中間,不夠的用‘-’補上
print(name.endswith("us"))               #判斷name是否以‘us'結尾
print(name.expandtabs(30))               #在/t標記處轉換成30個空格
print(name.find(('name')))              #查找‘name’在字符串name中的第一個位置的標號
print(name.isalnum())                    #判斷字符串是不是阿拉伯數字或英文字符
print(name.isalpha())                    #判斷字符串是否徹底是英文字符,包含大寫
print(name.isdecimal())                  #檢查字符串是否只包含十進制字符。
                                         # 定義一個十進制字符串,只須要在字符串前添加 'u' 前綴便可
print(name.isdigit())                    #判斷字符串是不是數字
print(name.isidentifier())               #判斷是不是合法的變量名
print(name.isnumeric())                  #判斷是不是一個數字,不包含標點,如2.1則不符合
print(name.isspace())                    #判斷是不是一個空格
print(name.istitle())                    #判斷是不是標題格式,即每一個單詞首字母大寫
print(name.isprintable())                #判斷是否可打印
print('ASa'.isupper())                    #判斷是否全是大寫
print('+'.join(['1','2','3']))          #打印結果:1+2+3
print(name.ljust(30,'*'))                #打印結果:my     name is Uranus************;rjust()相似
print(name.lower())                      #將字符串變成小寫
print(name.upper())                      #將字符串變成大寫
print(name.strip())                      #去掉字符串兩頭的空格和回車,lstrip()和rstrip()分別是去掉左邊和右邊的空格和回車
p=str.maketrans('acdefgurns','1234567890')
print("uranus".translate(p))             #顯示:781970
print("uranus".replace('u','U',1))      #替換,把第一個u替換成U,把第三個參數去掉則把全部的u換成U
print(name.split('a'))                   #以‘a'做爲分隔符分割字符串
print(name.splitlines())                  #以換行符爲分隔符
print(name.swapcase())                    #大小寫相互轉換
print(name.title())                       #轉換爲標題格式:My     Name Is     Uranus
print(name.zfill(30))                     #顯示:00000000000my     name is     Uranus

 

 

                                                     2019-02-09

16:51:48

Uranus Jerry

相關文章
相關標籤/搜索