python刷题和学习笔记

这篇博客详细记录了Python编程中常见的代码操作,包括列表的使用、字符串操作、迭代器和生成器的概念,以及collections和heapq库的相关功能。内容涵盖了enumerate、列表逆序、自定义排序、字典键值反转、进制转换、全排列和组合等知识点。
摘要由CSDN通过智能技术生成

常见代码

result = map(lambda x: int(x), input().split())
print(list(result))  
# 输入1 2 3,得到列表[1,2,3],这里使用split()比split(' ')更能容错
# 如果使用了' ',那么输入必须严格按照一个空格,并且最后一个数字后面不可以有空格。


print('Hello' if True else 'World')  # Hello
print('Hello' if False else 'World')  # World


a = [1,2,3,4]
a[1:1] = [0,0,0]  # [1, 0, 0, 0, 2, 3, 4]甚至是a[1:0]都是有效的操作

# 对字典遍历,如果没有使用字典的items,keys,values函数,默认遍历的也是key
costs = {
  'fin': inf, 'a': 6, 'b': 2}
for cost in costs:
    print(cost, end=' ')
    node = costs(cost)
# fin a b
# 如果是costs,而不是costs.items(),比如上面的的cost其实就是键的值。costs(cost)得到value。


# 初始化链表
class Node:
    def __init__(self, value, next=None):
        self.value = value
        self.next = next
L = Node('a', Node('b', Node('c')))


list x = [1,2,3]
tuple x = (1,2,3)
set x = {
  1,1,2,3} # {1,2,3}


python -i test.py
执行之后,源码中使用的变量会继续驻留在交互式的解释器中,可以继续使用。


浮点数比较问题
from decimal import *
sum(Decimal('0.1') for i in range(10)) == Decimal('1.0')

def almost_equal(x, y, places=7):
    return round(abs(x-y), places=7)==0

almost_equal(sum(0.1 for i in range(10), 1.0)

列表

append是把一个元素加入到列表的最后,extend是把一个元素中包含的元素加入到列表后面,所以extend的对象是要可迭代的。如果extend的是一个字符串,那么字符串拆分成一个一个字符加入到列表中。

data = ['Hello', '2018', 'New Year']
print(data, sep=',')  # ['Hello', 2018, 'New Year']
print(*data, sep=',')  # Hello,2018,New Year

enumerate

items = ['a', 'b', 'c']
for id, value in enumerate(items, 1):  # 1是设置输出id的起始值
    print(id, value)  # 1 a 2 b 3 c

data = [(1, 2), (3, 4), (5, 6), (7, 8)]
# 不可以for index, x, y in ...
for index, (x, y) in enumerate(data):  
    print(index, x, y)

列表逆序

nums = [1, 2, 3, 4, 5]
nums_re = nums[::-
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值