python練習 5 列表,去重,冒泡法

2021-08-17 23:40:51 字數 1789 閱讀 1967

# 輸入乙個數字,輸出每一位數字重複幾次 ##數字的個數很有限(10個)

# 列表也可以看作是一種字典,索引也可以記錄資訊,

import random

n = random.randint(1,100000)

print(n)

counter = [0]*10

for i in str(n):

x = int(i)

counter[x] += 1

for i in range(10):

if counter[i]:

print('the count of {} is {}'.format(i,counter[i]))

# 第二種實現,遍歷每一位數放入不同的陣列,麻煩但適用於字串

num = random.randint(1,100000)

print(num)

onum = str(num)

nums = [[onum[0]]]

for i in range(len(onum)):

flag = true

for j in range(len(nums)):

if onum[i] == nums[j][0]:

flag = false

break

if flag:

for i in range(len(nums)):

print('the count of {} is {}'.format(nums[i][0],len(nums[i])))

# 題目:有n個人圍成一圈,順序排號。從第乙個人開始報數(從1到3報數),凡報到

# 3的人退出圈子,問最後留下的是原來第幾號的那位。

# 固定長度,如果淘汰,改變狀態

for n in range(3,10):

lst = [0]*n

count = 0

while lst.count(0) > 1:

for i in range(n):

if not lst[i]:

count += 1

if count % 3 == 0:

lst[i] = 1

# print(lst)

print(n,lst.index(0)+1)

# 去重

s = 'aaddizz***888'

set1 = set(s)

print(''.join(set1))

s1 = ''

for i in range(len(s)):

if s1.find(s[i]) == -1:

s1 += s[i]

print(s1)

#冒泡法排序,len()-1,len()-1-i

import random

lst = [random.randint(1,100) for i in range(10) ]

print(lst)

for i in range(len(lst)-1):

flag = true

for j in range(len(lst)-1-i):

if lst[j] > lst[j+1]:

lst[j],lst[j+1] = lst[j+1],lst[j]

flag = false

if flag:

break

print(lst)

python練習5 列表

dayup 1.0dayfactor 0.01 for i in range 365 if i 7 in 6,0 dayup 1 dayfactor else dayup 1 dayfactor print dayup format dayup a,n map int,input 請輸入不超過9的兩...

python 多表去重 Python列表去重

無聊統計了下列表去重到底有多少種方法。1.集合 list set alist 如果要保持順序 import random if name main a random.randint 0,10 for i in xrange 10 b list set a b.sort key a.index 2.字...

Python列表去重

標題有語病,其實是這樣的 假設有兩個列表 l1 1,2,3,4 l2 1,2,5,6 然後去掉l1中包含的l2的元素 直接這樣當然是不行的 def removeexists l1,l2 for e1 in l1 if e1 in l2 l1.remove e1 不管什麼語言都不能這麼幹,但是又有一點...