python_day2_数据格式
本章目錄
2.1 for 擴展用法
2.2 格式化字符串
2.3 數據類型
? ? 2.3.1 整數
? ? 2.3.2 符點型
? ? 2.3.3 字符串
? ? 2.3.4 列表,元組
? ? 2.4.5 字典
? ? 2.4.6 fromkeys
? ? 2.4.7 set
2.1 for 簡單用法
for 循環
| 1 2 3 4 5 | ????range()????循環的次數? ????>>>?range(3) ?????[0,?1,?2] ????>>>?range(1,3) ?????[1,?2] |
? ? >>> range(1,100,2)? 從1開始100結束,步長2
? ? for? exam in enumerate(數組)?自動增加一個編號
? ? for? exam,v in enumerate(數組,1)? ?從1開始
? ??print(exam,v)? ?去掉元組括號
2.2 格式化字符串
格式化輸出占位符? %s, s = str 字符串
? ? ? ? ? %d, d = digit 整數
? ? ? ? ? ?%f, f = float 浮點數
格式化輸出
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #/usr/bin/env?python #?-*-?codeing:utf-8?-*- name?=?input("Name:") age?=?input("age:?") job?=?input("Job:?") salary?=?input("salary:?") if?salary.isdigit(): ????salary?=?int(salary) #?else: #?????exit("enable?int??") xio?=??''' ----------?info?of?%s?---------- Name:?%s Age:??%s Job:??%s Salary:?%f ----------?end?---------- '''?%?(name,name,?age,?job,?salary?) print(xio) |
### 輸出
| 1 2 3 4 5 6 7 8 9 10 11 | Name:xiong age:?22 Job:?it salary:?3333 ----------?info?of?xiong?---------- Name:?xiong Age:??22 Job:??it Salary:?3333.000000 ----------?end?---------- |
2.3 數據類型
? ? 整數: 判斷 isdigit? 長的像不像數字
? ? 數字
? ? 整數? int(integer)
? ? 整型
? ? 長整型
? ? in py3 已經不區分整型與長整型,統一叫做整型
? ??
浮點數:
? ? 用于處理實數,即帶有小數的數字,占8個字節(64位) 其中52位表示底,11位表示指數,剩下一位表示符號。
布爾 只有2種? ?
? ? 真: True?
? ? 假: False
列表, 元組
? ? a = ['aa','bb','cc','dd','ee','ff']
? ? a = [ 0? , 1? , 2,? ? 3,? ?4,? ?5 ]? ?# 這里為上面值的下標第一個值對應下標0
? ??
? ? in 包含某個內容是否存在于數據中,
? ??
? ? 查詢:? 索引(下標), 都是從0開始
? ? print (a[0])? ?# 取第0個索引,意為第一個值
? ? 打印結果為:? aa
? ??
? ? print(a[1:3])? # 從左往右,從第2個值一直到第4個值
? ? 打印結果為:? ['bb', 'cc']? ?顧頭不顧尾,最后一個不打印出來
? ??
? ? print(a[1::1]) # 從第1個值開始一直到最后一個,步長每次加1,從左往右
? ? 打印結果為:? ['bb', 'cc', 'dd', 'ee', 'ff']
? ??
? ? print(a[::-1]) # 從第1個開始直到最后一個,但這里是從右開始減,每次減一直至最后
? ? 打印結果為:? ['ff', 'ee', 'dd', 'cc', 'bb', 'aa']
? ??
添加:
? ? a.append('gg') # 最右添加一個值?
? ? 打印結果為:? ['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg']
? ? a.insert(2,'hh') # 默認插到最后一個位置,這里插到第2個索引
? ? 打印結果為:? ['aa', 'bb', 'hh', 'cc', 'dd', 'ee', 'ff', 'gg']
修改:
? ? a[2]='hc'# 將原先插入的第2個值hh直接修改為hc
? ? 打印結果為:? ['aa', 'bb', 'hc', 'dd', 'ee', 'ff']
? ??
? ? a[2:3]=['ha','da']# 將第2個值hh,第3個值dd修改為ha da
? ? 打印結果為:? ['aa', 'bb', 'ha', 'da', 'dd', 'ee', 'ff']
刪除:
? ? a.remove('ha') # 刪除值,這里只能刪除內容,不能直接刪除下標
? ? 打印結果為:? ['aa', 'bb', 'da', 'dd', 'ee', 'ff']
? ??
? ? # a.remove(a[0]) # 刪除指定值的下標,如不清楚內容的情況下,可以用這種方式
? ? # 打印結果為:? ['bb', 'da', 'dd', 'ee', 'ff']
? ??
? ? a.pop(1)? ?# 刪除指定索引
? ? 打印結果為:? ['aa', 'cc', 'dd', 'ee', 'ff']
? ??
? ? b=a.pop(1)? ? ?# 刪除指定索引,并直接賦值給b,方便查看刪除的某個值的內容,避免犯錯
? ? 打印結果為:? bb
? ??
? ? a.clear()? # 清空
? ??
? ? del a? ? ? ?# 直接將對象a給刪除
? ??
? ? del a[1]# 刪除指定索引1 ,簡單粗暴,但危險
統計出現的字符串: count
? ? b = ['11','22','33','11','22','11'].count('11')定義一個對象以及數組,并統計type(str(11))出現了多少次
? ? 打印結果為: 3
附加字符串: extend
? ? a=['1','2','3']
? ? b=['4','5','6']
? ? a.extend(b)# 定義兩個值,將b內容附加擴展到a上
? ? 打印結果為: ['1', '2', '3', '4', '5', '6']
查找索引: index
? ? print(a.index('cc'))# 查詢內容對應的下標索引值是多少
? ? 打印結果為: 2
將結果倒過來輸 reverse
? ? b = ['11','22','33','11','22','11']
? ? print (b.reverse())? # 這種方式只能得出none, 想輸出只能 b.reverse()? print(b)
? ? 打印結果為: ['11', '22', '11', '33', '22', '11']
? ? b.sort(reverse=True) # 從大到小排序
排序 sort? ? ?# 函數直接對內容進行排序,沒有return返回值所以賦值給另一個值會直接為空
? ? b = ['11','22','33','11','22','11']
? ? --> b.sort()
? ? --> print(b)
? ? 打印結果為:['11', '11', '11', '22', '22', '33']
身份判斷? >>> type(a) is list
True
元組:? 只讀列表
? ? xx = ()? ? # 空元組
? ? xx2 = (20,) # 一個元素,需要在元素后添加括號
2.4.5 字典
字典: 鍵值對數據類型
字典必須是不可修改的類型,字典,元組 都不可以做為鍵
字典兩大特點: 無序,鍵唯一
a=[1,2,3]
a=list((1,2,3))
dict()? ?跟list創建方法是一樣的
dic1=[]
dic2=dict()? 方法必須帶括號? ?dic2=dict((("name","xiong"),("age",33),))
鍵值添加
dic1={"name":"xiong"}
dic["age"]=222
# 鍵存在,不改動,返回字典中相應的鍵的對應值?
dic1.setdefault("hobby","NNN")
# 鍵不存在,在字典中增加新的鍵值對,并返回相應值
字典查詢
dic1 = {"name":"xiong", "age":33,}
print(dic["age"])
# 將所有的鍵都取出做為一個列表, 類型為dict_keys
dic1.keys()結果:dict_keys(['name', 'age', '1'])
# 將字典中所有的值都出來
dic1.values()結果: dict_values(['xiong', 33, 'test1'])
# 將字典的鍵值對都取出來
dic1.items()結果:dict_items([('name', 'xiong'), ('age', 33), ('1', 'test1')])
xx = list((dic1.keys()))
print(type(xx))<class 'list'>
修改
dic = {"name":"xiong", "age":33,}
dic["age"]=34
dic2 = {'1':'111','2':'222'}
dic.update(dic2)# 跟列表中extend功能一樣
結果為 {"name":"xiong", "age":33, '1':'111', '2':'222'}
刪除
del dic1["name"]結果: 刪除name的鍵值對
del dic1 結果: 刪除整個字典
dic1.clear()結果: 清空字典
dic5.pop("age")結果: 刪除字典中指定鍵值對,并返回該鍵值對的值
# 隨機刪除一個鍵值對,并以元組方式返回值
dic1.popitem()?
2.4.6? fromkeys
其它操作以及涉及到的方法
dic3=dict.fromkeys(["h1","h2","h3"],"hhh")
print(dic3)得出結果 {'h1': 'hhh', 'h2': 'hhh', 'h3': 'hhh'}
# 將多個值賦值給多個鍵
dic3=dict.fromkeys(["h1","h2","h3"],["hhh","ggg"])??
print(dic3)結果:{'h1': ['hhh', 'ggg'], 'h2': ['hhh', 'ggg'], 'h3': ['hhh', 'ggg']}
字典的嵌套
data = [
{"1",22 },
{"2",33 },
]
排序
# 返回一個有序的包含字典所有key的列表
print(sorted(dic3.items()))
結果: [('h1', ['hhh', 'ggg']), ('h2', ['hhh', 'ggg']), ('h3', ['hhh', 'ggg'])]
遍歷
dic1=dict((("name","xiong"),("age",33),))
for i in dic1:
? ?print(i,dic1[i])
2.4.7 set
set: 把不同的元素組成一起形成集合,是py基本的數據類型?
# 去重功能,當有兩個相同的元素的時候會去掉重復的字符串
# 必須是可hash的字符串,set是無序的,只能通過循環遍歷或使用in、not in來訪問或判斷集合元素
# set 不能做為鍵
更新set集合_添加
a = ["a","b"]
c=set(a)
c.add("c")
print(c)結果: {'b', 'a', 'c'}
update?
c.update("ab1")
print(c)結果: {'b', '1', 'a', 'c'}?
# ab1 做為一個序列添加,有重復的不會添加序列, 沒有重復的會直接添加到列表中
c.update([123,321])? # 當為列表時,它會將序列當成一個整體加入到變量中,有重復的也不會添加?
print(c)# {321, 'b', 'a', 123}
remove, pop, clear, del
c.remove("a") 結果: {'b', '1', 'c'}?
c.pop()結果: 隨機刪除一個
c.clear()# 結果: 清空列表 返回 set()
del c # 直接刪除變量,打印報錯因為已經沒了
交集,并集
a=set([1,2,3,4,5])
b=set([1,2,3,4,6])
交集: print( a & b)? ?# {1, 2, 3, 4}
并集: print( a | b)? ?# {1, 2, 3, 4, 5, 6}
差集, 對稱差集
差集: print(a.difference(b))? ?in a but bot b? # A有的B沒有的打印出來
第二種方法: print (a-b)?
# {5}? ?反過來也一樣
對稱差集: print(a.symmetric_difference(b))? ? ?AB有的都不打印,只打印它共同沒有的字符串或數值
第二種方法: print ( a^b )
# {5, 6}??
超集,子集
print(a.issuperset(b))# A是不是完全包含B,否 返回 False 相當于A>B
print(a.issubset(b))# A是不是B的子集? ?相當于A<B
name1=set(["xiong","wei","hua","fa"])
name2=set(["xiong","yua","yuan","hua"])
# 子集? ? ? ? # 判斷兩個字段是否相等
print(name1<name2)? ? ? # False
# 父集? ? ? ? # 判斷兩個字段是否相等
print(name1>name2)? ? ? # False
# 并集? ? ? ? # 打印去重之后的
print(name1 | name2)? ? # {'hua', 'xiong', 'yuan', 'wei', 'fa', 'yua'}
# 交集? ? ? ? # 共同有的
print( name1 & name2 )? # {'hua', 'xiong'}
# 差集? ? ? ? # 用集合1減去集合2的相同字段,取出與集合2不相關的
print( name1 - name2 )? # {'wei', 'fa'}
# 對稱差集? ? ?# 取出A跟B有的,打印兩個集合沒有的字符串
print( name1 ^ name2 )? # {'yuan', 'yua', 'fa', 'wei'}
# 手動輸入一些字符串與自行定義的字符串進行對比
| 1 2 3 4 5 6 7 8 9 10 11 | ins=[] b=set(['1','2','3','4','5']) while?True: ????a=input("測試:?") ????if?a?==?"q": ????????break ????ins.append(a) ?? ins=set(ins) ?? print(ins?>?b?) |
? ? ?本文轉自812374156 51CTO博客,原文鏈接:http://blog.51cto.com/xiong51/1962935,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的python_day2_数据格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot发送http请求
- 下一篇: 火墙之firewalld