有用的10个代码

、重复元素判定

以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来移除所有重复元素。

def all_unique(lst):

return len(lst)== len(set(lst))

x = [1,1,2,2,3,2,3,4,5,6]

y = [1,2,3,4,5]

all_unique(x) # False

all_unique(y) # True

2、分块

给定具体的大小,定义一个函数以按照这个大小切割列表。

from math import ceil

def chunk(lst, size):

return list(

map(lambda x: lst[x * size:x * size + size],

list(range(0, ceil(len(lst) / size)))))

chunk([1,2,3,4,5],2)

#[[1,2],[3,4],5]

3、压缩

这个方法可以将布尔型的值去掉,例如(False,None,0,“”),它使用 filter() 函数。

def compact(lst):

return list(filter(bool, lst))

compact([0, 1, False, 2, '', 3, 'a', 's', 34])

#[ 1, 2, 3, 'a', 's', 34 ]

4、 使用枚举

我们常用 For 循环来遍历某个列表,同样我们也能枚举列表的索引与值。

list = ["a", "b", "c", "d"]

for index, element in enumerate(list):

print("Value", element, "Index ", index, )

#('Value', 'a', 'Index ', 0)

#('Value', 'b', 'Index ', 1)

#('Value', 'c', 'Index ', 2)

#('Value', 'd', 'Index ', 3)\

5、解包

如下代码段可以将打包好的成对列表解开成两组不同的元组。

array = [['a', 'b'], ['c', 'd'], ['e', 'f']]

transposed = zip(*array)

print(transposed)

#[('a', 'c', 'e'), ('b', 'd', 'f')]

6、展开列表

该方法将通过递归的方式将列表的嵌套展开为单个列表。

def spread(arg):

ret = []

for i in arg:

if isinstance(i, list):

ret.extend(i)

else:

ret.append(i)

return ret

def deep_flatten(lst):

result = []

result.extend(

spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))

return result

deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]

7、 列表的差

该方法将返回第一个列表的元素,其不在第二个列表内。如果同时要反馈第二个列表独有的元素,还需要加一句 set_b.difference(set_a)。

def difference(a, b):

set_a = set(a)

set_b = set(b)

comparison = set_a.difference(set_b)

return list(comparison)

difference([1,2,3], [1,2,4]) # [3]

8、 执行时间

如下代码块可以用来计算执行特定代码所花费的时间。

import time

start_time = time.time()

a = 1

b = 2

c = a + b

print(c) #3

end_time = time.time()

total_time = end_time - start_time

print("Time: ", total_time)

#('Time: ', 1.1205673217773438e-05)

9、 Shuffle

该算法会打乱列表元素的顺序,它主要会通过 Fisher-Yates 算法对新列表进行排序:

from copy import deepcopy

from random import randint

def shuffle(lst):

temp_lst = deepcopy(lst)

m = len(temp_lst)

while (m):

m -= 1

i = randint(0, m)

temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]

return temp_lst

foo = [1,2,3]

shuffle(foo) # [2,3,1] , foo = [1,2,3]

10、 交换值

不需要额外的操作就能交换两个变量的值。

def swap(a, b):

return b, a

a, b = -1, 14

swap(a, b) # (14, -1)

spread([1,2,3,[4,5,6],[7],8,9])

#[1,2,3,4,5,6,7,8,9]

好玩的两个代码:

画一个玫瑰花:

import turtle

# 设置初始位置
turtle.penup()  # 提起画笔
turtle.left(90)  # 逆时针旋转九十度
turtle.fd(200)  # 向前移动一段距离 fd=forward
turtle.pendown()  # 放下画笔移动画笔开始绘制
turtle.right(90)   # 顺时针旋转九十度

# 花蕊
turtle.fillcolor("red")  # 填充颜色
turtle.begin_fill()  # 开始填充
turtle.circle(10, 180)  # 画一圆,10是半径,180是弧度
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill()  # 结束填充

# 花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)  # urtle.setheading(angle) 或 turtle.seth(angle):改变行进方向 angle:行进方向的绝对角度,可以为负值
turtle.circle(80, 98)
turtle.circle(-90, 40)

# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)

# 叶子1
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()

turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.left(90)
turtle.fd(80)

# 叶子2
turtle.right(90)
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()

turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(60)
turtle.right(90)
turtle.circle(200, 60)

# 设置成画完不会自动退出
turtle.done()

最后打印一个爱心

# 打印爱心图案
def print_love():myData = "love"for char in myData.split():allChar = []for y in range(12, -12, -1):lst = []lst_con = ''for x in range(-30, 30):formula = ((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (y * 0.1) ** 3if formula <= 0:lst_con += char[(x) % len(char)]else:lst_con += ' 'lst.append(lst_con)allChar += lstprint('\n'.join(allChar))time.sleep(1)if __name__ == '__main__':print_love()

Python入门代码相关推荐

  1. python入门代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  2. python入门基础代码图-python入门代码指南教程书籍推荐2020总结全集汇总

    python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...

  3. python代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  4. python入门代码大全-python入门代码指南教程书籍推荐2020总结全集汇总

    python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...

  5. python入门代码指南教程书籍推荐2020总结全集汇总

    python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...

  6. python入门代码示例-这可能是最好玩的python GUI入门实例!

    image.png 简单的说,GUI编程就是给程序加上图形化界面. python的脚本开发简单,有时候只需几行代码就能实现丰富的功能,而且python本身是跨平台的,所以深受程序员的喜爱. 如果给程序 ...

  7. python入门代码-Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

  8. python入门代码示例-Python入门简单的静态网页爬虫3.0 (爬虫的示例代码)

    一.需求分析 爬取百度词条Python页面的相关100个页面,分析目标:分析(url格式 数据格式 网页编码 ).url格式限定了爬取的网页格式避免一些不相干的网页的爬取.数据格式主要是内容中相关的标 ...

  9. python入门代码示例-Python入门100个实例(14)——换行符和制表符

    从本实例学到什么 换行符是什么,怎么写和有什么用. 制表符是什么,怎么写和有什么用. 稍稍提及转义字符的概念. 示例程序代码 #例2-3-9 换行符和制表符 print("I'm Bob. ...

  10. python入门代码-python基础知识和练习代码

    1.编译:将高级语言源代码转换成目标代码(机器语言),程序便可运行. ​ 好处:目标代码执行速度更快:目标代码在相同操作系统上使用灵活. 2.解释:将高级语言源代码逐条转换成目标代码同时逐条执行,每次 ...

最新文章

  1. 杰奇为什么只能用php5.2,杰奇2.2修改系统定义后,网站报错问题解决
  2. Play! Framework 系列(三):依赖注入
  3. 高性能服务器 - window篇
  4. 机器学习-逻辑回归-信用卡检测任务
  5. 漫步者蓝牙只有一边有声音_2019年上半年最具“诚意”的真无线劲挂蓝牙耳机新品...
  6. matlab虚拟现实之V-Realm Builder2特别组节点使用
  7. 2021年全国各行业统计年鉴整理
  8. 电脑的眼泪--无限弹窗3
  9. flash如何同时访问本地文件系统和网络文件
  10. android版本单词熟记APP和单词APP
  11. sql语句中count(*),count(1),count(id)区别详解
  12. LeetCode[765]情侣牵手
  13. Python实现简易版学生信息管理系统,包含源码及相关实现说明~
  14. 智能化变电站辅助系统与生产系统结合的未来发展方向
  15. 利用Python进行数据分析之金融数据的统计分析
  16. gsl for windows
  17. macs14_iPhone和iPad应用程序将能够在基于ARM的Macs上本地运行
  18. SSM实现考研助手系统
  19. 计算机病毒带来主要危害,计算机病毒的危害有哪些【详细介绍】
  20. mpp架构 mysql,MPP架构知识整理

热门文章

  1. 【CTR排序】多任务学习之MMOE模型
  2. CefSharp中ChromiumWebBrowser打开新页面处理(_blank)
  3. Java String的split方法总结
  4. LOL峡谷之巅前500爬取
  5. 4000字全面了解小红书数据平台工程师(实时方向)社招面试内容
  6. 如何在 XMind 中绘制流程图?
  7. Springboot疫苗接种管理系统-JAVA.JSP【数据库设计、源码、开题报告】
  8. 2009北京国际马拉松,不一样的马拉松
  9. MySQL中字符串类型的字段最大使用longtext来存储
  10. 【码云】git push origin mash 报错:remote: error: GH007: Your push would publish a private email address.