程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python容器

編輯:Python

一、字符串

 

# 下標也是索引
my_str = 'hello'
print(my_str[0]) # 負數從-1開始
print(my_str[-1])
# [start:end:step]
# step默認為1,表示下標之間的間隔
# 不包含end對應的下標
print(my_str[2:4:1])
# end位置不寫,表示是len(),即可以取到最後一個元素
my_str3 = my_str[2:]
print(my_str3)
# start位置不寫,表示0開始
my_str4 = my_str[:3] # 注意3的位置取不到
print(my_str4)
# start和end都不寫,但是需要冒號
my_str5 = my_str[:]
print(my_str5)
print(my_str[-4: -1]) # -1位置取不到 ell
print(my_str[3:1]) # 沒有結果輸出
print(my_str[3:1:-1], '2') # ll 2
print(my_str[::-1]) # 字符串的逆值, olleh
print(my_str[::2]) # 0 2 4 h l o == my_str[0:5:2]

 字符串切片:

 

字符串查找方法:

find() & rfind()

my_str = 'hello world itcast and itcastcpp'
# find() 在字符串中查找是否存在某個字符串
# my_str.find(sub_str,start,end)
# sub_str: 要在字符串中查找的內容,類似str
# start :開始查找位置 ,默認0
# end: 結束的位置,查找到哪裡結束,默認是len()
# 返回值:即方法執行的結果是什麼,如果找得到sub_str, 返回的sub_str 在 my_str中的位置的正數下標
# 如果沒有找到,那麼返回-1
index = my_str.find('hello')
print(index) # hello 在my_str下標為0的位置
# 從下標為3的位置找字符串 hello
print(my_str.find('hello', 3))
print(my_str.find('itcast')) # 12 加上空格
print(my_str.find('itcast', 15)) # 23
# rfind() right find() 從右邊(後邊) 開始查找
print(my_str.rfind('itcast')) # 23

index & rindex() ------沒有找到會直接報錯

print(my_str.index('hello')) # 0
# print(my_str.index('hello', 5)) # error
print(my_str.rindex('itcast')) # 23
print(my_str.index('itcast')) # 12 加上空格,下標從0開始

count()---統計出現的次數

print(my_str.count('aaaa')) # 0
print(my_str.count('hello')) # 1
print(my_str.count('itcast')) # 2
print(my_str.count('itcast'), 20) # 1 ,從20號以後itcast出現的次數

字符串替換 replace

# my_str.replace(old_str, new_str, count)
# old_str: 將要被替換的字符串
# new_str: 替換成的字符串
# count: 替換的次數,默認全部替換
# 返回值:得到一個新的字符串,不會改變原來的字符串
my_str = 'hello world itcast and itcastcpp'
my_str1 = my_str.replace('itcast', 'itheima')
print('my_str:', my_str)
print('my_str1:', my_str1)
my_str2 = my_str.replace('itcast','itheima', 1) # 替換一次
print('my_str2:%s' % my_str2)

字符串分隔 split()

# 字符串分割split()
result = my_str.split()
print(result)
print(my_str.split('itcast')) # 默認全部切割
print(my_str.split('itcast', 1)) # 切割1次
print(my_str.rsplit('itcast', 1)) # 從最右邊開始切割

字符串連接 join()

# join()
# my_str.join(可迭代對象)
my_str = '_'.join('hello')
print(my_str)
print('_*_'.join('hello'))
# 定義列表
my_list = ['hello', 'cpp', 'python']
print("_".join(my_list))
print("_*_".join(my_list))
print(" ".join(my_list))

二、list

1.什麼是列表?

列表是python中的一種數據類型,可以存放多個數據,列表中的數據可以是任意類型的

列表list,定義使用[],進行定義。

# 定義空列表
my_list = []
print(my_list, type(my_list)) # '[]' , <class 'list'>
my_list1 = list() # 空列表
print(my_list1, type(my_list1))
# 定義帶數據的列表,數據元素之間用逗號隔開
my_list2 = [1, 3.14, True, 'isaac']
print(my_list2, type(my_list2)) # [1, 3.14, True, 'isaac'] <class 'list'>
# 求列表中數據元素的個數,即列表的長度
num = len(my_list2)
print(num)
# 列表支持下標和切片操作
print(my_list2[1]) # 3.14
print(my_list2[-1]) # isaac
print(my_list2[1:3]) # [3.14,True] 因為左閉右開
# 下標操作和字符串中不同的是:字符串不能使用下標修改其中的數據,但是列表可以使用下標修改列表中的數據
my_list2[0] = 18
print(my_list2)
my_list2[-1] = 'hello'
print(my_list2)
my_list2[0] = 'python'
print(my_list2)
# 輸出結果
D:\Python\Day03String\venv\Scripts\python.exe D:/Python/Day03String/list.py
[] <class 'list'>
[] <class 'list'>
[1, 3.14, True, 'isaac'] <class 'list'>
4
3.14
isaac
[3.14, True]
[18, 3.14, True, 'isaac']
[18, 3.14, True, 'hello']
['python', 3.14, True, 'hello']

2.遍歷

# 遍歷
my_list = ['A', 'B', 'C', 'D']
for i in my_list:
print(i, end=' ')
print()
print('*' * 30)
j = 0
while j < len(my_list):
print(my_list[j], end=' ')
j += 1

 

3.向列表中添加數據

# 向列表中添加數據
# 向列表中添加數據的方法,都是直接在原列表中進行添加的,不會返回新的列表
my_list = ['A', 'B', 'C', 'D']
print(my_list)
# 列表.append(數據),向列表尾部追加數據
my_list.append('aa')
print(my_list)
result = my_list.append('12') # 不要這樣書寫
print(result) # 不要這樣書寫,結果為‘None’
print(my_list) # ['A', 'B', 'C', 'D', 'aa', '12']
# 列表.insert(下標, 數據) 在指定的下標位置進行添加數據
my_list.insert(0, 'isaac')
print(my_list)
# print(my_list.insert(5, 3.14)) None
# 列表.extend(可迭代對象) # str 列表,會將可迭代對象中的數據逐個添加到原列表的末尾
my_list.extend('he')
print(my_list)
my_list.extend([1, 'python', 3])
print(my_list)

4.列表中的數據查詢操作(列表中沒有find()方法,只有index()方法) 

my_list = [1, 3.14, 'issca', False]
num = my_list.index(3.14) # 1
print(num)
# num1 = my_list.index(100) # 程序報錯,因為程序不存在
# count() 統計出現的次數
num3 = my_list.count(1)
print(num3)
# in/not in 判斷是否存在,存在是True,不存在時False,一般和if 結合使用
num4 = 3.14 in my_list # True
num4 = 3.14 not in my_list # False
print(num4)

5.列表中的刪除操作

# 根據下標刪除
# pop() 默認刪除最後一個數據
num = my_list.pop() # 9
print(num)
print(my_list)
num = my_list.pop(2) # 刪除下標為2的數據 即5
print(num)
print(my_list)
# del_列表[下標]
del my_list[1] # 刪除下標為1的數據2
print(my_list)

 

6.列表的排序和逆置

# 想要對列表中的數據進行排序,前提是列表中的數據類型是一樣的
my_list = [1, 5, 3, 7, 9, 6]
# 列表.sort()直接在列表中進行排序
# my_list.sort() # 默認是從小到大排序,即升序
# my_list.sort(reverse = True) # 通過reverse= True,從大到小排列
my_list1 = sorted(my_list)
my_list2 = sorted(my_list,reverse=True)
print(my_list)
print(my_list1)
print(my_list2)
my_list3 = ['a', 'b', 'c', 'd', 'e']
my_lise4 = my_list3[::-1]
print(my_list3)
print(my_lise4)
# 在原列表直接逆值
my_list3.reverse()
print(my_list3)

 7.列表的嵌套

school_names = [['北京大學', '清華大學'], ['南開大學', '天津大學', '天津師范大學'], ['山東大學', '中國海洋大學']]
print(school_names[1])
print(school_names[1][1])
print(school_names[1][1][1])
# 山東大學
print(school_names[2][0])
# 全部遍歷
for schools in school_names:
for name in schools:
print(name)

三、元組 

有興趣自己跑一下代碼。。。

# 元組和列表非常相似,都可以存放多個數據,可以存放不同數據類型的數據
# 不同點:列表用[], 元組使用()
# 列表中的數據可以修改,元組中的數據不能被修改
my_lists = [18, 3.14, True, 'issca']
my_tuple = (18, 3.14, True, 'issca')
print(my_tuple, type(my_tuple))
# 元組支持下標和切片要求
print(my_tuple[1])
# 定義空數組,沒有意義
my_tuple1 = ()
print(my_tuple1, type(my_tuple1))
my_tuple2 = tuple()
# 定義一個數據元素的元素,數據元素後邊,必須有一個逗號,否則報書寫錯誤
my_tuple3 = (3) # 3 <class 'int'>
my_tuple4 = (3,)
print(my_tuple3, type(my_tuple3))
print(my_tuple4, type(my_tuple4))


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved