1.列表的去重
方法1:保持原列表的順序
l=[1
,2,2
,4,8
,7]l1=
list
(set
(l))
#使用set()去重,無序
l2=sorted
(l1,key=l.index)
#使用sorted的key關鍵字按列表l的索引值排序
#或者使用list自帶的方法sort
l1.sort(key=l.index)
方法2:利用字典的fromkeys()
l=[1
,2,2
,4,8
,7]l1=
list
(.fromkeys(l)
.keys())
#
方法3:利用新的列表
def
func
(l):
l1=for x in l:
if x not
in l1:
return l1l=[
1,2,
2,4,
8,7]
print
(func(l)
)
2.字串的反轉
方法1:使用切片步長
str1=
"hello"
print
(str1[::
-1])
方法2:利用reduce函式
from functools import
reduce
str1=
"hello"
reduce
(lambda x,y:y+x,str1)
3.字典的key與value反轉
方法1:使用zip函式
dic=
l1=list
(dic.keys())
#獲取字典的所有key
l2=list
(dic.values())
#獲取字典的所有value
dic2=
dict
(zip
(l2,l1)
)#通過zip函式組裝
print
(dic2)
方法2:利用字典推導式及字典的dict.items()方法
dic=
dic3=
print
(dic3)
4.統計字串中字母出現的次數
方法1:利用counter()方法
from collections import counter
str1=
"hello world"
str1=str1.replace(
' ','')
#先去除字串中的空格
collect=counter(str1)
#執行結果
counter(
)
方法2:利用字典的setdefault()方法
str1=
"hello world"
str1=str1.replace(
' ','')
#新建乙個字典,key用於存放字串中的字元,value存放字元出現的次數
dic=
for i in str1:
#使用setdefault()向dic插入鍵值對,key為字串中的每個字元,value為0
dic.setdefault(i,0)
#讀入str1字串中的字元後,修改對應值+1
dic[i]+=1
#執行結果
5.斐波拉契數列
#求n以內的斐波拉契數列
deffunc
(n):
i,j=0,
1 l=[0
,1]while i+jnum=i+j
i,j=j,num
print
(l)func(
100)
#執行結果[0
,1,1
,2,3
,5,8
,13,21
,34,55
,89]
6.氣泡排序
def
func
(l):
for i in
range
(len
(l))
:for j in
range
(i,len
(l))
:if l[i]
>l[j]
: l[i]
,l[j]
=l[j]
,l[i]
return ll=[
1,5,
2,1,
0,6,
7,4]
print
(func(l)
)#執行結果[0
,1,1
,2,4
,5,6
,7]
7.不使用迴圈,列印1-n
迴圈可以用迭代來等價實現
def
prints
(n):
if n>0:
prints(n-1)
print
(n,end=
' ')
#end=' ',使用空格代替換行
prints(10)
#執行結果12
3456
78910
8.計算n的階乘
方法1:使用迭代
def
func
(n):
if n==1:
return n
return n*func(n-1)
func(10)
#執行結果
3628800
方法2:使用reduce
from functools import
reduce
print
(reduce((
lambda x,y:x*y)
,range(1
,11))
)#執行結果
3628800
9.找出兩個字串中的最大公共子串
def
func
(str1,str2)
: maxstr=
0 p=
0 record=[[
0for i in
range
(len
(str2)+1
)]for j in
range
(len
(str1)+1
)]for i in
range
(len
(str1)):
for j in
range
(len
(str2)):
if str1[i]
==str2[j]
: record[i+1]
[j+1
]=record[i]
[j]+
1if record[i+1]
[j+1
]>maxstr:
maxstr=record[i+1]
[j+1
] p=i+
1return record[i+1]
[j+1
],str1[p-maxstr:p]
print
(func(
"hello"
,"elallo"))
#執行結果(3
,'llo'
)
Python基礎程式設計題
1 接收輸入的一行字元,統計出字串中包含數字的個數 str input 請輸入一串字元 count 0for i in str if i.isdigit count count 1print 數字個數 d count 2 請輸入星期幾的第一 個字母,用來判斷是星期幾,如果第乙個字母一樣,則繼續判斷第...
Java基礎程式設計題 API階段測試
試卷答題說明 1.總分100分 2.專案名稱用自己的中文名字 如果本班有重名的學員,則在專案名稱後加上學號,如 張三001和張三002 3.包名為com.itheima.tests,總共5道題目分別命名為test01 test02 4.提交答案的方法 直接將專案複製出來打成zip壓縮包發給老師,千萬...
測試開發面試基礎(python)
1使用列表推導式輸出1 100的列表 print i for i in range 100 2使用列表推導式輸出1 100內的奇數 print i for i in range 100 if i 2 1 print i for i in range 1,100,2 print i for i in ...