python_字典、元組、列表的操作

Paste_Image.png

目錄


1. 類型匯總

2.數據類型轉換

3.列表

4.元組

5.日期和時間

6.字典


  • 一、 類型匯總

  • 1.字符串

  • str1 = '字符串 '

  • str2 = "字符串"
    這2種用法完全相同

  • str3 = '''多行的字符串 '''
    經常用于方法、類的說明中

  • 2.布爾類型

     bool=False
     print bool
     bool=True
     print bool
    
  • 3.整數

    int=20
    print int;
    
  • 4.浮點數

    float=2.3
    print float;
    
  • 二、 數據類型轉換

  • 1.數字

    包括整數、浮點數

    • 1.1 刪除數字對象引用,例如:
      a=1
      b=2
      c=3
      del a
      del b, c
      #print a; #刪除a變量后,再調用a變量會報錯
  • 1.2 數據類型轉換

函數 描述
int(x [,base]) 將x轉換為一個整數
long(x [,base] ) 將x轉換為一個長整數
float(x) 將x轉換到一個浮點數
complex(real [,imag]) 創建一個復數
str(x) 將對象 x 轉換為字符串
repr(x) 將對象 x 轉換為表達式字符串
eval(str) 用來計算在字符串中的有效Python表達式,并返回一個對象
tuple(s) 將序列 s 轉換為一個元組
list(s) 將序列 s 轉換為一個列表
set(s) 轉換為可變集合
dict(d) 創建一個字典。d 必須是一個序列 (key,value)元組。
frozenset(s) 轉換為不可變集合
chr(x) 將一個整數轉換為一個字符
unichr(x) 將一個整數轉換為Unicode字符
ord(x) 將一個字符轉換為它的整數值
hex(x) 將一個整數轉換為一個十六進制字符串
oct(x) 將一個整數轉換為一個八進制字符串
  • 1.3 數學函數
函數 返回值 ( 描述 )
abs(x) 返回數字的絕對值,如abs(-10) 返回 10
ceil(x) 返回數字的上入整數,如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回數字的絕對值,如math.fabs(-10) 返回10.0
floor(x) 返回數字的下舍整數,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10為基數的x的對數,如math.log10(100)返回 2.0
max(x1, x2,...) 返回給定參數的最大值,參數可以為序列。
min(x1, x2,...) 返回給定參數的最小值,參數可以為序列。
modf(x) 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。
pow(x, y) x**y 運算后的值。
round(x [,n]) 返回浮點數x的四舍五入值,如給出n值,則代表舍入到小數點后的位數。
sqrt(x) 返回數字x的平方根,數字可以為負數,返回類型為實數,如math.sqrt(4)返回 2+0j
  • 1.4 隨機函數
函數 描述
choice(seq) 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。
randrange ([start,] stop [,step]) 從指定范圍內,按指定基數遞增的集合中獲取一個隨機數,基數缺省值為1
random() 隨機生成下一個實數,它在[0,1)范圍內。
seed([x]) 改變隨機數生成器的種子seed。如果你不了解其原理,你不必特別去設定seed,Python會幫你選擇seed。
shuffle(lst) 將序列的所有元素隨機排序
uniform(x, y) 隨機生成下一個實數,它在[x,y]范圍內。
  • 三、列表

  • 1.列表切片
    list[2:5]
  • 2.更新列表
    nums[0]="ljq"
  • 3.刪除列表元素
    del nums[0]
  • 4.列表腳本操作符列表對+和??的操作符與字符串相似。+號用于組合列表,***號用于重復列表,例如
    print len([1, 2, 3])
    #3
    print [1, 2, 3] + [4, 5, 6]
    #[1, 2, 3, 4, 5, 6]
    print ['Hi!'] * 4
    #['Hi!', 'Hi!', 'Hi!', 'Hi!']
    print 3 in [1, 2, 3]
    #True
    for x in [1, 2, 3]
    print x, #1 2 3
  • 5.列表截取
    L=['spam', 'Spam', 'SPAM!']
    print L[2]
    #'SPAM!'
    print L[-2]
    #'Spam'print
    L[1:]
    #['Spam', 'SPAM!']
  • 6.列表函數&方法
函數名 說明
list.append(obj) 在列表末尾添加新的對象
list.count(obj) 統計某個元素在列表中出現的次數
list.extend(seq) 在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
list.index(obj) 從列表中找出某個值第一個匹配項的索引位置,索引從0開始
list.insert(index, obj) 將對象插入列表
list.pop(obj=list[-1]) 移除列表中的一個元素(默認最后一個元素),并且返回該元素的值
list.remove(obj) 移除列表中某個值的第一個匹配項
list.reverse() 反向列表中元素,倒轉
list.sort([func]) 對原列表進行排序
  • 四、元組(tuple)

  • 1.Python的元組與列表類似,不同之處在于

    • 元組的元素不能修改;
  • 元組使用小括號(),列表使用方括號[];

  • 元組創建很簡單,只需要在括號中添加元素,并使用逗號(,)隔開即可,例如:
    tup1 = ('physics', 'chemistry', 1997, 2000)
    tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b", "c", "d";

  • 創建空元組,例如:tup = ();

  • 元組中只有一個元素時,需要在元素后面添加逗號,例如:tup1 = (50,);

  • 元組與字符串類似,下標索引從0開始,可以進行截取,組合等。

  • 1.1、訪問元組
    tup1 = ('physics', 'chemistry', 1997, 2000)

    tup1[0]: physics

    print "tup1[0]: ", tup1[0]
    #tup1[1:5]: ('chemistry', 1997)
    print "tup1[1:5]: ", tup1[1:3]
    
  • 1.2、修改元組元組中的元素值是不允許修改的,但我們可以對元組進行連接組合,例如:
    tup1 = (12, 34.56)
    tup2 = ('abc', 'xyz');
    # 以下修改元組元素操作是非法的。# tup1[0] = 100;
    # 創建一個新的元組
    tup3 = tup1 + tup2
    print tup3; #(12, 34.56, 'abc', 'xyz')

  • 1.3、刪除元組元組中的元素值是不允許刪除的,可以使用del語句來刪除整個元組,例如:
    tup = ('physics', 'chemistry', 1997, 2000)
    print tup
    del tup

  • 1.4、元組運算符與字符串一樣,元組之間可以使用+號和*號進行運算。這就意味著他們可以組合和復制,運算后會生成一個新的元組。
  • 1.5、元組索引&截取
    L = ('spam', 'Spam', 'SPAM!')
    print L[2]
    #'SPAM!'print L[-2]; #'Spam'
    print L[1:]
    #['Spam', 'SPAM!']

  • 1.6、元組內置函數

函數名 說明
cmp(tuple1, tuple2) 比較兩個元組元素。
len(tuple) 計算元組元素個數。
max(tuple) 返回元組中元素最大值。
min(tuple) 返回元組中元素最小值。tuple(seq) 將列表轉換為元組。
  • 五、日期和時間

  • 1、獲取當前時間,例如:

    import time, datetime;
    localtime = time.localtime(time.time())
    #Local current time : time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)
    print "Local current time :", localtime
    

說明:time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)屬于struct_time元組,struct_time元組具有如下屬性:
  • 1.1、獲取格式化的時間可以根據需求選取各種格式,但是最簡單的獲取可讀的時間模式的函數是asctime():

  • 1、日期轉換為字符串
    首選:
    print time.strftime('%Y-%m-%d %H:%M:%S')
    其次:
    print datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
    最后:
    print str(datetime.datetime.now())[:19]

  • 2、字符串轉換為日期
    expire_time = "2013-05-21 09:50:35"
    d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")
    print d;

  • 1.2、獲取日期差
    oneday = datetime.timedelta(days=1)
    #今天
    today = datetime.date.today()
    #昨天
    yesterday = datetime.date.today() - oneday
    #明天
    tomorrow = datetime.date.today() + oneday
    #獲取今天零點的時間
    today_zero_time = datetime.datetime.strftime(today, '%Y-%m-%d %H:%M:%S')
    #0:00:00.001000
    print datetime.timedelta(milliseconds=1)#1毫秒
    #0:00:01
    print datetime.timedelta(seconds=1)#1秒
    #0:01:00 print datetime.timedelta(minutes=1) #1分鐘
    #1:00:00
    print datetime.timedelta(hours=1)#1小時
    #1 day, 0:00:00
    print datetime.timedelta(days=1)#1天
    #7 days, 0:00:00
    print datetime.timedelta(weeks=1)

  • 1.3、獲取時間差
    #1 day, 0:00:00
    oneday = datetime.timedelta(days=1)
    #今天,2014-03-21 16:07:23.943000
    today_time = datetime.datetime.now ()
    #昨天,2014-03-20 16:07:23.943000
    yesterday_time = datetime.datetime.now() - oneday
    #明天,2014-03-22 16:07:23.943000
    tomorrow_time = datetime.datetime.now() + oneday
    注意時間是浮點數,帶毫秒。那么要獲取當前時間,需要格式化一下:
    print datetime.datetime.strftime(today_time, '%Y-%m-%d %H:%M:%S')
    print datetime.datetime.strftime(yesterday_time, '%Y-%m-%d %H:%M:%S')
    print datetime.datetime.strftime(tomorrow_time, '%Y-%m-%d %H:%M:%S')

  • 1.4、獲取上個月最后一天
    last_month_last_day = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)

  • 1.5、字符串日期格式化為秒數,返回浮點類型:
    expire_time = "2013-05-21 09:50:35"
    d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")
    time_sec_float = time.mktime(d.timetuple())
    print time_sec_float

  • 1.6、日期格式化為秒數,返回浮點類型:
    d = datetime.date.today()
    time_sec_float = time.mktime(d.timetuple())
    print time_sec_float

  • 1.7、秒數轉字符串
    time_sec = time.time()
    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_sec))#####今天遇到個問題需要判斷字典是否存在,所以順便記錄下

  • 原理:python中默認將()、[]、{}、' ' 全部視為False(假)

  • 驗證方法:

  • 例:
    tuples = ()
    list = []
    dict = {}
    if tuples:
    print '元組非空'
    else:
    print '元組為空'
    #輸出結果:元組為空
    if list:
    print '列表非空'
    else:
    print '列表為空'
    #輸出結果:列表為空
    if dict:
    print '字典非空'
    else:
    print '字典為空'
    #輸出結果:字典為空

  • 類似的方法:
    if not list:#這種方法與 if list: 效果相同,有啥區別還不知道(使用空列表的隱式booleanness)
    if len(list) == 0:#長度為0,列表一定為空了
    if list == []:#直接判斷是否為空
    if not bool(list): # 一個空的列表是不假

@晴-2016-08-30 21:32:17

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容