選擇排序 以及 set、dict、習題練習

習題練習 僅作參考

簡單的選擇排序

lst1 = [8,2,4,5,6,3,1,9,7]
length = len(lst1)
for i in range(length):
maxindex = i
for j in range(i+1,length):
if lst1[maxindex] < lst1[j]:
maxindex = j
if i != maxindex:
tmp = lst1[i]
lst1[i] = lst1[maxindex]
lst1[maxindex] = tmp
print(lst1)

 

輸入一個數字,打印每一位數字及其重復的次數

num = input(“>”)
d = {}
for c in num:
if not d.get(c):
d[c] = 1
continue
d[c] += 1
print(d)

方法二:

num = input(“>”)
d = {}
for c in num:
if c not in d.keys():
d[c] = 1
else:
d[c] += 1
print(d)

數字重復統計

import random

n = 100
nums = [0] * n
for i in range(n):
nums[i] = random.randint(-1000,1000)
# print(nums)

t = nums.copy()
t.sort()
print(t)
b = len(t)

 

方法二:

import random

n = 100
nums = [0] * n
for i in range(n):
nums[i] = random.randint(-1000,1000)

d = {}
for x in nums:
if x not in d.keys():
d[x] = 1
else:
d[x] += 1

print(d)
d1 = sorted(d.items())
print(d1)

 

字符串重復統計:

import random
alphabet = ‘ffjdkhfjkdshfjdkshfjdkshfjkdbghfdffweferyeuwioqifj’
words = []
for _ in range(100):
words.append(random.choice(alphabet)+random.choice(alphabet))
# print(words)
d = {}
for x in words:
d[x] = d.get(x,0) + 1
print(d)

d2 = sorted(d.items())
print(d2)

 

列表解析習題:

1-10 平方的列表

[ x**2 for x in range(10)]

求一個列表相鄰兩個相加的和

lst = [1,4,9,16,2,5,10,15]
[lst[i]+lst[i+1] for i in range(len(lst)-1)]

 

 

列表解析打印救救乘法表

[print(‘{}*{}={:<3}{}’.format(j,i,i*j,’\n’ if i==j else ”),end=”) for i in range(1,10) for j in range(1,i+1)]

 

生成 ID

方法一:

import random

[‘{:04}.{}’.format(n, ”.join([random.choice(bytes(range(97,123)).decode()) for _ in range(10)])) for n in range(1,101)]

方法二:

import random

[‘{:04}.{}’.format(i,”.join([chr(random.randint(97,122)) for j in range(10)])) for i in range(1,101)]

方法三:

import string
[‘{:>04}.{}’.format(i, ”.join(random.choice(string.ascii_lowercase) for _ in range(0,10))) for i in range(1,101)]

 

 

 

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87769

(0)
5220367552203675
上一篇 2017-10-10 16:56
下一篇 2017-10-11 14:57

相關推薦

  • 解析式

    列表解析式和字典解析式 datetime模塊 對日期,時間,時間戳的處理 datetime類 today()返回本地時區當前的datetime對象 now(tz=None)返回當前時間的datetime對象,時間到微秒,如果tz為None,返回和today()一樣 utcnow()沒有時區的當前時間 fromtimestamp(timestamp,tz=Zo…

    2018-04-09
  • Python第十二周學習總結

    并行,并發,多線程

    2018-05-27
  • 幾個python運維面試題及答案

    1.生成隨機的20個ID ID格式要求: 時間戳_三位隨機數字號碼_8位隨機小寫字母 1506571959_089_xxkeabef datetime.datetime.now().timestamp() 返回的是時間戳,但是帶微秒 2.判斷密碼強弱 要求密碼必須由 10-15位 指定字符組成: 十進制數字 大寫字母 小寫字母 下劃線 要求四種類型的字符都要…

    2017-10-02
  • Python入門之迭代,列表解析,生成器及文件操作

    迭代器是訪問集合元素的一種方式,迭代器包含了__iter__()(返回迭代器對象本身)next()(返回迭代器的下一個元素)迭代器只能往前不會退后 以下類型支持迭代 序列類型:list,str,tuple 非序列類型:dict,file 自定義類 通過內建的函數iter()或對象自帶方法__iter__可以獲取迭代器對象 l1=range(5) iter1=…

    Linux干貨 2015-12-13
  • 面向對象之魔術方法

    特殊屬性 屬性 含義 __name__ 類、函數、方法的名稱 __module__ 類定義所在的模塊名 __class__ 對象或類所屬的類 __bases__ 類的基類的元組,順序為它們在基類列表中出現的順序 __doc__ 類、函數的文檔字符串,若沒定義則為None __mro__ 類的mro,方法查找順序 __dict__ 類或實例的屬性,可寫的字典 …

    2018-05-20
  • 類的繼承

    Edit 類的繼承 基本概念 面向對象三要素之一,繼承Inheritance 舉例: 人類和貓類都繼承自動物類 個體繼承自父母,繼承了父母的一部分特征,但也可以有自己的個性 在面向對象的世界中,以父類繼承,就可以直接擁有父類的屬性和方法,這樣可以減少代碼、多復用。子類可以定義自己的屬性和方法 class Animal: def shout(self): pr…

    2017-11-15
欧美性久久久久