Python數據內容

  • 2019 年 10 月 6 日
  • 筆記

Python字元串教程

字元串作為python中最為常見的一種結構,它最典型的特徵就是有引號,無論是單引號,或是雙引號,還是三引號,它們都是字元串。

"""

字元串string, 從左向右從0開始,從右向左-1,-2。

"""

a = "abcdef"

print(a[2])

print(a[-2])

"""

字元串的基本操作, python中的字元串是不可變的,會拷貝一份進行修改,原string不變

切割,並沒有slice函數直接中括弧,中間使用**冒號**隔開 [起始:結束:步長]

"""

print(a[0:3]) # abc

print(a[0:5:2]) # ace 或者是省略直接寫冒號

print(a[::2]) # ace 步長為2表示隔著讀取

print(a[1:4:2]) # bd 從b開始讀取

print(a[::-2]) # fdb 步長為負數表示從右到左,倒著讀

print(a[-1:-4:-2]) # fd 步長為負數表示從右到左,倒著讀

print("===========================")

"""

a.capitalize() 字元串**首字母**進行大寫

a.title() 字元串**每個單詞的首字母**進行大寫

a.startswith() 字元串是否以某個字串開始

a.endswith() 字元串是否以某個字串結尾

a.lower() 字元串所有字母進行小寫

a.upper() 字元串所有字母進行大寫

"""

b = "hello world"

print(a.capitalize())

print(b.title())

print(a.startswith("ab"))

print(a.endswith("ab"))

print(a.lower())

print(a.upper())

print(a.islower())

print(a.isnumeric())

"""

a.ljust(self, width, fillchar) 字元串進行左對齊,字元串佔用的長度和需要填充的字元

a.rjust(self, width, fillchar) 字元串進行右對齊,字元串佔用的長度和需要填充的字元

a.center(self, width, fillchar) 字元串進行居中,字元串佔用的長度和需要填充的字元

a.lstrip(char) 刪除字元串左邊的字元,不寫參數的話去除的是左邊空格,相當於左邊trim()

a.rstrip(char) 刪除字元串右邊的字元,不寫參數的話去除的是右邊空格,相當於右邊trim()

a.strip(char) 刪除字元串兩邊的字元,不寫參數的話去除的是兩邊空格,相當於java的trim()

"""

a = "abcdef"

print(a.ljust(10, "0")) # abcdef0000

print(a.rjust(10, "0")) # 0000abcdef

print(a.center(10, "0")) # 00abcdef00

print(a.lstrip("0"))

print(a.rstrip("0"))

print(a.strip("0"))

"""

a.partition("b") 將字元串以"b"字,分割,如果b在中間且只有一個b,那麼返回一個數組[前,"b",後]

a.splitlines() 將字元串逐行分割,返回一個list,非數組,按需求進行選擇方法

a.isalpha() 字元串是否全是字母,不論大小寫,返回bool

a.isdigit() 字元串是否全是數字,返回bool

a.isalnum() 前兩個的集合體al + num,判斷字元串是否包含數字或者字母或者混合也行

a.isspace() 字元串是否只包含空格

a.join(["xxx","yyy"]) list中每個元素的後面都插入a字元串

"""

b = "abncdnef"

print(a.partition("b")[1]) # ('a', 'b', 'cdef') -> b

print(b.splitlines()) # ['ab', 'cd', 'ef']

print(a.isalpha())

print(a.isdigit())

print(a.isalnum())

print(a.isspace())

print("x".join(["1", "2", "3"])) # 1x2x3

print("".join(["1", "2", "3"])) # 123 將list迅速轉換為一個字元串

# "abcbdbebf" -> "acdef"

c = "abcbdbebf"

d = c.split("b") # 去除字元串中所有的b,返回一個list

result = "".join(d) # list轉換為字元串

print(result)

"""

a.ljust(self, width, fillchar) 字元串進行左對齊,字元串佔用的長度和需要填充的字元

a.rjust(self, width, fillchar) 字元串進行右對齊,字元串佔用的長度和需要填充的字元

a.center(self, width, fillchar) 字元串進行居中,字元串佔用的長度和需要填充的字元

a.lstrip(char) 刪除字元串左邊的字元,不寫參數的話去除的是左邊空格,相當於左邊trim()

a.rstrip(char) 刪除字元串右邊的字元,不寫參數的話去除的是右邊空格,相當於右邊trim()

a.strip(char) 刪除字元串兩邊的字元,不寫參數的話去除的是兩邊空格,相當於java的trim()

"""

a = "abcdef"

print(a.ljust(10, "0")) # abcdef0000

print(a.rjust(10, "0")) # 0000abcdef

print(a.center(10, "0")) # 00abcdef00

print(a.lstrip("0"))

print(a.rstrip("0"))

print(a.strip("0"))

"""

a.partition("b") 將字元串以"b"字,分割,如果b在中間且只有一個b,那麼返回一個數組[前,"b",後]

a.splitlines() 將字元串逐行分割,返回一個list,非數組,按需求進行選擇方法

a.isalpha() 字元串是否全是字母,不論大小寫,返回bool

a.isdigit() 字元串是否全是數字,返回bool

a.isalnum() 前兩個的集合體al + num,判斷字元串是否包含數字或者字母或者混合也行

a.isspace() 字元串是否只包含空格

a.join(["xxx","yyy"]) list中每個元素的後面都插入a字元串

"""

b = "abncdnef"

print(a.partition("b")[1]) # ('a', 'b', 'cdef') -> b

print(b.splitlines()) # ['ab', 'cd', 'ef']

print(a.isalpha())

print(a.isdigit())

print(a.isalnum())

print(a.isspace())

print("x".join(["1", "2", "3"])) # 1x2x3

print("".join(["1", "2", "3"])) # 123 將list迅速轉換為一個字元串

# "abcbdbebf" -> "acdef"

c = "abcbdbebf"

d = c.split("b") # 去除字元串中所有的b,返回一個list

result = "".join(d) # list轉換為字元串

print(result)

Python數組教程

數組,一般科班出身的同學會叫它數組,因為在C裡面我們是這麼叫的,但是有些人更願意直接叫他列表或list,叫起來更直接,它最典型的特徵就是它的中括弧[],基本看到這個就八九不離十了,他就是數組。

"""

list列表元素的修改操作

"""

a_list = [1,2,3,4]

a_list[2] = "雙擊666"

print(a_list)

"""

查詢list元素 (in, not in, index, count)

為了避免index方法找不到的報錯,解決方案:

1, 先判斷是否in,然後再list.index進行獲取

2, 判斷count非零即真,-1等負數也是真,再進行獲取

"""

if 1 in a_list:

print("存在")

if 88 not in a_list:

print("不存在list中")

print(a_list.index(2)) # 查詢某個元素的index, 找不到的話不返回-1,直接報錯

print(a_list.count(2)) # 查詢某一個元素出現的次數

if a_list.count(22):

print("22元素存在可以安全的獲取索引:%d" % a_list.index(22))

else:

print("元素不存在列表中")

"""

list刪除元素

del 是一個內置函數,並不是屬性, del 函數直接銷毀對象

pop 是屬性,pop()默認刪除最後一個,pop(1)刪除索引為1的元素,並且返回該元素

remove 是屬性, pop是知道索引進行刪除,remove是知道obj進行刪除

clear 清空為[]

"""

b_list = [1, 2, 3, 4]

del b_list[2] # del b_list的話會直接刪除b_list整個list,銷毀對象,再print的話就話undefined

print(b_list)

print(b_list.pop(0))

b_list.remove(2) # remove不存在的元素會拋異常報錯

b_list.clear()

print(b_list)

"""

list元素的排序

sort() 默認無參數是從小到大

reversed(list) 整個列表直接反過來,返回值是一個新的list

"""

import random

a_list = []

for i in range(10):

a_list.append(random.randint(0, 200))

print(a_list)

a_list.sort()

print(a_list)

a_list.sort(reverse=True) # 降序,從大到小

print(a_list)

new_list = reversed(a_list) # [12,10,7,9] -> [9,7,10,12]

print(new_list)

"""

一個學校,三個辦公室, 八位老師進行隨機分配辦公室

"""

school = [[], [], []]

teacher_list = list("ABCDEFGH")

for name in teacher_list:

index = random.randint(0,2)

school[index].append(name)

print(school)

Python元組教程

元組沒什麼好說的,和數組幾乎一模一樣,但是它不可以被修改,也就是說,所有適用於數組修改的方法,它統統都沒有。元組的主要特徵是一對小括弧()。元組也有點比較特殊的地方,如果是單元素,一定要注意加上逗號,注意看下面的特例。

"""

字元串表示:"", '', """"""

list表示:[], 可修改

元組的表示:(), 元組的元素不能進行修改,

元組中如果只有一個元素的話,後面加上逗號表明是一個tuple,否則就是元素真實類型

"""

a_tuple = (1, 3.14, "Hello", True)

empty_tuple = ()

empty_tuple2 = tuple()

# 特例

b_tuple = (1) # type = int

c_tuple = (1,) # type = tuple

"""

訪問元組tuple

查詢的話和list一樣使用count, index

"""

print(a_tuple[2])

# a_tuple[1] = "哈哈" 元組的元素不能重新賦值和修改,因為tuple是不可變的

print(a_tuple.count(1)) # 元組中1對象出現的次數是2, 因為Ture在電腦眼中就是1

print(a_tuple.index(3.14))

Python字典教程

字典這個東西在我們的現實生活中就是作查詢用的,靠一個字查詢到這個字的全部意思。那在python裡面也差不多這個意思。一個索引詞對應一個值 A: aaaaa,字典的特徵有兩個,第一個就是一個索引對應一個值,用冒號進行對應,第二個特徵就是大括弧{}。

"""

字典數據類型dictionary表示方法: 花括弧{}

"""

a_dict = {"name": "張三", "age": 20, "id": "007"}

print(a_dict)

b_dict = {}

c_dict = dict()

"""

字典的常見操作

字典的key必須是**不可變**,可以是任意類型,元組也可以為key,因為元組是不可變的

注意字典的key必須不可變但是可以重複, 重複的話獲取的是最後一個

"""

d_dict = {(1,2,3): "元組value01",

"name": "張三",

"info": {"address": "石家莊", "country": "中國"},

(1,2,3): "元組value02"}

print(d_dict[(1,2,3)])

print(d_dict["info"]["country"])

"""

字典修改元素的value, 前提是key存在,

添加元素: 否則就會新增一個key-value

刪除元素:del python內置函數可以用在list, tuple和字典都可以用

"""

d_dict["name"] = "李四"

d_dict["name2"] = "王五" # name2 不存在, 直接就會添加進去

del d_dict["name2"]

d_dict.clear()

print(d_dict)

"""

len() 字典的長度

keys() 返回字典中所有的key的集合, 轉化為list類型

values() 返回字典中所有的value的集合, 轉化為list類型

items() 返回的是一對對key-value以元組的形式

"""

print(len(a_dict))

print(list(a_dict.keys())) # dict_keys(['name', 'age', 'id']) -> ['name', 'age', 'id']

print(list(a_dict.values()))

print(list(a_dict.items())[1][1]) # [('name', '張三'), ('age', 20), ('id', '007')]

"""

python3中取消了字典的has_key方法,使用的是setdefault

使用的是setdefault("key", "找不到的默認值"), 找不到的話會修改添加新的key到字典中

get(key, 默認值) 和setdefault的作用基本一樣, 但是不會添加新的key,原來dict不會變

"""

if "name" in a_dict:

print("有一個key為name的。")

else:

print("字典中沒有一個key叫做name")

print(a_dict.setdefault("name1", "name的默認值")) # 找不到name1, 添加進去

print(a_dict)

print(a_dict.get("name2", "name的默認值")) # 找不到name2, 但是不會添加進去

print(a_dict)

"""

字典的遍歷,

"""

a_dict = {"name": "張三", "age": 20, "id": "007"}

for key in a_dict.keys():

print(key)

for value in a_dict.values():

print(value)

for item in a_dict.items(): # 遍歷字典的元素,返回一個個元組(),()

print(item)

for key, value in a_dict.items(): # 遍歷字典的鍵值對

print(key, "->", value)

str1 = "xxx"

str2 = "yyy"

print(str1, str2) # print多個變數, 第二個參數默認是一個空格:xxx yyy

print(str1, "—>", str2) # xxx —> yyy

"""

enumerate(list / tuple等帶有索引的數據結構)可以獲得index

"""

a_list = ["張三", "李四", "王五"]

a_tuple = ("張三", "李四", "王五")

for index, temp in enumerate(a_list):

print(index, "–>", temp)

Python集合(SET)教程

Set是python裡面比較特殊的一個集合,它也是由大括弧{}做成的,但是呢,它裡面的元素排列和數組一樣,這樣{1,2,4,6},set最特別的地方它裡面的元素是不可以重複且沒有順序的,這也就間接告訴我們,他不可以直接用中括弧進行取值,它可以為list進行去重。

"""

集合set表示花括弧{}, 無序不可重複,重讀的話只保留一份,python自動去重操作

add() 添加到set中, 相當於list中的append

update(可迭代對象), 類似於list中的extend, 將可迭代的最小單元add到set中

"""

a_set = {1,3,5,7,3}

print(a_set) # {1, 3, 5, 7} 去重操作

b_set = set()

c_set = {} # 指的是空的字典,並不是集合set類型

a_set.add(11)

a_set.update("abcd")

print(a_set)

"""

set中的刪除

remove(obj), set無序,只能根據obj進行刪除,找不到obj的話異常

pop(), 因為set無序, 刪除的並不是最後一個,而是隨機的刪除一個元素

discard(), 元素存在刪除, 不存在則不會發生異常

"""

a_set.remove(1)

a_set.pop()

a_set.discard(111) # set中的discard安全一點,不會異常

print(a_set)

"""

多個set集合的操作, 交集並集主要用在多個set的去重

& -> 交集

| -> 並集

"""

set1 = {1,2,3,4}

set2 = {3,4,5,6}

print(set1 & set2)

print(set1 | set2)

# 去重的話講list轉換為set的話直接迅速, 不需要手動判斷

a_list = [1, 3, 4, 3, 4, 5, 6]

print(set(a_list))

# 利用set集合的特點,進行多個list的去重, 將每一個list轉換為set求交集即可,一行程式碼搞定

b_list = [1, 2, 3, 4]

c_list = [3, 4, 5]

print(set(b_list) | set(c_list))

"""

字元串, list, 元組, 字典等運算符公共方法

"""

print([1,2] + [3,4]) # [1, 2, 3, 4]

print([1,2] * 4) # [1, 2, 1, 2, 1, 2, 1, 2]

print(3 in [1,2,3]) # True

print(3 not in [1,2,3]) # False