【Python】菜鸡小技巧总结

2023-11-08

本菜鸡在刷leetcode时的一些备忘录 ヾ(◍°∇°◍)ノ゙

关于 split() 的用法

s = "a good   example"
res = s.split()
print(res) # ['a', 'good', 'example']
res = s.split(' ')
print(res) # ['a', 'good', '', '', 'example']

遍历数组的时候,跳过当前元素

ss = "abcd"
for i in range(len(ss)):
    print(i)
    print(ss[:i]+ss[i+1:])

"""
0
bcd # 第0个元素不取
1
acd # 第1个元素不取
2
abd # 第2个元素不取
3
abc # 第3个元素不取

"""

数组倒着输出 list.pop()

alist = [1,2,3,4,5]
for _ in range(len(alist)):
    print(alist.pop())
"""
5
4
3
2
1
"""

list声明空数组、二维数组

# 浅拷贝
list1 = [[]]*3
print(list1) # [[], [], []]
list1[0].append(3) # [[3], [3], [3]]
# list1是一个含有一个空列表元素的列表,所以[[]]*3表示3个指向这个空列表元素的引用,修改任何
# 一个元素都会改变整个列表
print(list1) # [[3], [3], [3]]

list2 = []*3
print(list2) # []

# 深拷贝
lists = [[] for i in range(3)]
lists[0].append(3)
lists[0].append(4)
lists[0].append(5)
print(lists) # [[3, 4, 5], [], []]

# 构建4行3列二维数组
myList = [([0] * 3) for _ in range(4)]
print(myList) # [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
myList[0][1]=5
print(myList) # [[0, 5, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

list初始化递增二维数组

x,y = 2,4
A = np.ones((3, 5))
print("A: ", A) # 3行5列
#  [[1. 1. 1. 1. 1.]
#  [1. 1. 1. 1. 1.]
#  [1. 1. 1. 1. 1.]]
for i in range(0, x+1):
    A[i][0] = i
    for j in range(1,y+1):
        A[i][j] = A[i][j-1]+1
print(A)
# [[0. 1. 2. 3. 4.]
#  [1. 2. 3. 4. 5.]
#  [2. 3. 4. 5. 6.]]

 list一个未完成的疑问

# 问题在哪呢???
a = [[1,2],[3,4],[5,6]]
for i in a:
    i.append(10)
    print(i)
"""
[1, 2, 10]
[3, 4, 10]
[5, 6, 10]
"""

c = [i.append(10) for i in a]
print(c) # [None, None, None]

list sorted() 与sort() 排序

list.sort() 排序后改变了原本的list
sorted(list) 排序后不会改变原list,默认升序

"""
list.sort() 排序后改变了原本的list
sorted(list) 排序后不会改变原list,默认升序
"""
nums = [10,3,8,9,4]
nums.sort() # 改变了原本的nums列表
print("sort: ", nums) # [3, 4, 8, 9, 10]
a = [5, 2, 3, 1, 4]
print("sorted: ", sorted(a)) # 升序 # [1, 2, 3, 4, 5]
print(a) # [5, 2, 3, 1, 4] sorted不改变原list
print(sorted(a,reverse=True)) # 实现降序 # [5, 4, 3, 2, 1]

字符串用完sorted(0)之后会转为list

# 字符串用完sorted(0)之后会转为list
c = "acbed"
print(sorted(c)) # ['a', 'b', 'c', 'd', 'e']

np.arange() 与 range() 生成list的不同

print("--------求幂----------")
print(np.arange(3,6)) # [3 4 5]
scales = 2**np.arange(3,6)
print(scales) # [8 16 32]

for i in range(4):
    print(i) # 0,1,2,3
bb = [i for i in range(4)]
print(bb) # [0, 1, 2, 3]

for i in range(0):
    print(i) # 啥也不输出

 list转为np.mat()后下标取值

python中numpy模块下函数array()和mat()的区别

A = [[1,2,3,4,5,6],
[7,8,9,10,11,12],
[13,14,15,16,17,18]]
A = np.mat(A)
print(A[0,:]) # [[1 2 3 4 5 6]]
print(A[0,:1]) #[[1]]
print(A[0,:4]) # [[1 2 3 4]]
print(A[0,:5]) # [[1 2 3 4 5]]

list取不存在的下标也无所谓

# 取不存在的下标也无所谓
sss = "abc"
print(sss[2:3]) #c
print(sss[2:4]) #c
print(sss[2:5]) #c

list切片

a = "loveleetcode"
print(a[:-1]) # loveleetcod
print(a[-5::-1]) # octeelevol

# 翻转列表
listNode = [1,2,3]
print(listNode[::-1])  # [3, 2, 1]

is与==

a = 1
b = 1
print(a is b) # True
print(a == b) # True

collections用法

import collections
n1 = '2500'
n2 = '0052'
print(collections.Counter(n1)) # Counter({'0': 2, '2': 1, '5': 1})
print(collections.Counter(n2)) # Counter({'0': 2, '5': 1, '2': 1})
print(collections.Counter(n1)==collections.Counter(n2)) # True

将字典同一key的value合并

print("input: ", b) # [{'892': 7}, {'892': 9}, {'892': 6}, {'212': 10}]

print('-'*30)
new_dict = {}

for idx, val in enumerate(b):
    print(idx, val, type(val))
    old_key = [k for k in val.keys()][0]
    if old_key in new_dict.keys():
        tmp_list = new_dict[old_key]
        tmp_list.append(val[old_key])
        new_dict[old_key] = tmp_list
    else:
        new_dict[old_key] = [val[old_key]]

print("output: ", new_dict)
# {'892': [7, 9, 6], '212': [10]}

# 按照value的个数降序
sorted_new_list = sorted(new_dict.items(), key=lambda d: len(d[1]), reverse=True)
print(sorted_new_list) # [('892', [7, 9, 6]), ('212', [10])]

关于python:如何将带有位值逗号的数字字符串转换为整数?
https://www.codenong.com/2308443/

>>> s="1,374"
>>> import locale
>>> locale.setlocale(locale.LC_NUMERIC, '')
'en_US.UTF-8'
>>> locale.atoi(s)
1374

方法2(这种方式更简单一点)

int("1,374".replace(",",""))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python】菜鸡小技巧总结 的相关文章

  • 在 Numpy 中切片后确定结果数组的形状

    我很难理解在 numpy 中切片后如何确定结果数组的形状 例如 我使用以下简单代码 import numpy as np array np arange 27 reshape 3 3 3 slice1 array 1 2 1 slice2
  • Tensorflow 可变图像输入大小(自动编码器、放大......)

    Edit WARNING不建议使用不同图像大小的图像 因为张量需要具有相同的大小才能实现并行化 我一直在寻找解决方案 了解如何使用不同大小的图像作为神经网络的输入 Numpy 第一个想法是使用numpy 然而 由于每个图像的大小不同 我无法
  • 在python中将文本文件解析为列表

    我对 Python 完全陌生 我正在尝试读取包含单词和数字组合的 txt 文件 我可以很好地读取 txt 文件 但我正在努力将字符串转换为我可以使用的格式 import matplotlib pyplot as plt import num
  • 即使使用 .loc[row_indexer,col_indexer] = value 时也会设置 WithCopyWarning

    这是我的代码中得到的行之一SettingWithCopyWarning value1 Total Population value1 Total Population replace to replace value 4 然后我将其更改为
  • Python 3 __getattribute__ 与点访问行为

    我读了一些关于 python 的对象属性查找的内容 这里 https blog ionelmc ro 2015 02 09 understanding python metaclasses object attribute lookup h
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 如果字段值在外部列表中,Django 会注释布尔值

    想象一下我有这个 Django 模型 class Letter models Model name models CharField max length 1 unique True 还有这个列表 vowels a e i o u 我想查询
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • “char”/“character”类型的类型提示

    char 或 character 没有内置的原始类型 因此显然必须使用长度为 1 的字符串 但是为了暗示这一点并暗示它应该被视为一个字符 如何通过类型提示来实现这一点 grade chr A 一种方法可能是使用内置的 chr 函数来表示这一
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • 如何在 Python 中将彩色输出打印到终端?

    是否有与 Perl 等效的 Python 语言 print color red print
  • 更改 pandas 中多个日期时间列的时区信息

    有没有一种简单的方法可以将数据帧中的所有时间戳列转换为本地 任何时区 不是逐列进行吗 您可以有选择地将转换应用于所有日期时间列 首先 选择它们select dtypes https pandas pydata org pandas docs
  • win32 GUI 应用程序在作为“app.exe --help”调用时将使用文本写入标准输出

    如何创建执行以下操作的 Windows 应用程序 当不使用命令行参数调用时 它是一个常规的 GUI 应用程序 指定可选的 help 命令行参数会导致应用程序将使用文本写入标准输出 然后终止 它必须是单个可执行文件 让控制台应用程序执行第二个
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst
  • 将输入发送到 python 子进程而不等待结果

    我正在尝试为一段代码编写一些基本测试 该代码通常通过 stdin 无休止地接受输入 直到给出特定的退出命令 我想检查程序是否在给出一些输入字符串时崩溃 经过一段时间来考虑处理 但似乎无法弄清楚如何发送数据而不是陷入等待我不知道的输出关心 我
  • Django 在选择列表更改时创建毫无意义的迁移

    我正在尝试使用可调用创建一个带有选择字段的模型 以便 Django 在选择列表更改时不会创建迁移 如中所述this https stackoverflow com questions 31788450 stop django from cr
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • Python - 如何查询定义方法的类?

    我的问题有点类似于this one https stackoverflow com questions 5520580 how do you get all classes defined in a module but not impor
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • 常用jquery 方法

    注意点 使用jquer时时刻注意此时是jquery 对象 而非dom对象 在调用相关方法 属性时 注意不用与dom对象混用 导致调用失败 一 IFRAME相关调用知识 摘自 http java my life iteye com blog
  • python学习-GUI

    图形用户界面和游戏开发 一 基于tkinter模块的GUI 在python中的默认GUI开发模块是tkinter 还有其他的模块wxPython PyQt PyGTK等 基于tkinter开发的GUI应用以下5个步骤 导入tkinter模块
  • "undefined reference to" 问题解决方法

    最近在 Linux 下编程发现一个诡异的现象 就是在链接一个静态库的时候总是报错 类似下面这样的错误 text 0x13 undefined reference to func 关于undefined reference 这样的问题 大家其
  • nmap常用命令

    nmap 命令 1 nmap sT 192 168 96 4 TCP连接扫描 不安全 慢 2 nmap sS 192 168 96 4 SYN扫描 使用最频繁 安全 快 3 nmap Pn 192 168 96 4 目标机禁用ping 绕过
  • Unity中触摸和鼠标操作的几个问题

    关键点1 在unity中touch事件同时也会触发GetMouseButton事件 有时候可能会给你带来方便 但是如果没有意识到这个问题的话 也很可能给你带来很大的麻烦 关键点2 触摸操作也可以使用Input GetAxis Mouse X
  • 自动调用拷贝构造函数的三种情况

    自动调用拷贝构造函数的三种情况 首先介绍拷贝构造函数的定义形式 class 类名 public 构造函数名称 类名 变量名 函数体 拷贝构造函数是使用类对象的引用作为参数的构造函数 它能够将参数的属性值拷贝给新的对象 完成对新对象的初始化
  • 增减序列

    增减序列 https www acwing com problem content 102 给定一个长度为 n 的数列 a1 a2 an 每次可以选择一个区间 l r l r 使下标在这个区间内的数都加一或者都减一 求至少需要多少次操作才能
  • Shoot the Bullet 【ZOJ - 3229】【有源汇有上下界最大流】

    题目链接 题意 有N天 M个妹纸 接下来是一行共M个数 表示M个妹纸要求你在N天内总共给他们拍摄至少Gi个照片 然后有N天 每天有个Ci和Di 表示今天有Ci个妹纸要拍摄 但是今天最多拍摄Di张照片 然后是Ci个妹纸 第一个是妹纸的编号 0
  • 如何批量快速提取复制文件夹里所有文件夹名和文件名(包括所有子文件里的所有文件夹名和文件名)详细步骤

    推荐阅读 Windows 批处理 bat 语法大全 BAT批处理基本命令总结 南北极之间的博客 CSDN博客 windowsbat命令Windows 批处理 bat 语法大全 BAT批处理基本命令总结https blog csdn net
  • 有监督学习和无监督学习

    一 什么是机器学习 概念 从广义上来说 机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法 但从实践的意义上来说 机器学习是一种通过利用数据 训练出模型 然后使用模型预测的一种方法 机器学习的应用范围 机器学习与模
  • Java之内存分配(图解)

    一 Java 五大内存分配地 栈 堆 方法区 本地方法栈 寄存器 我们主要掌握栈和堆的分配规则 举个例子 public static void main String args int a 5 int b 10 int c a b sout
  • 软件测试行业未来发展趋势 2020软件测试行业现状及市场前景规模分析

    2020软件测试行业发展现状及市场前景规模分析 软件测试 英语 SoftwareTesting 描述一种用来促进鉴定软件的正确性 完整性 安全性和质量的过程 换句话说 软件测试是一种实际输出与预期输出之间的审核或者比较过程 软件测试的经典定
  • 云原生之Docker容器的存储管理

    一 检查本地docker环境 1 检查宿主机系统版本 root docker cat etc centos release CentOS Linux release 7 6 1810 Core 2 检查docker版本 root docke
  • 软件测试基础--使用测试文档

    一 计划测试工作 测试计划是指工作中会遇到的最基本测试文档 1 测试计划的目的 规定测试活动的范围 方法 资源和进度 明确正在测试的项目 要测试的特性 要执行的测试任务 每个任务的负责人 以及与计划相关的风险 测试计划只是创建详细计划过程的
  • Vue3+TS封装一个可任意拖拽的悬浮球组件,可拓展

    先上效果图 图中悬浮球可在屏幕中任意拖动 最近项目中遇到一个需求 能够在所有页面中往悬浮球中添加或者移出某一项 类似于网页端淘宝的购物车这种的 但是功能也不是很复杂 所以想用最简单的方式以最少的代码实现 公司技术是vue3 所以我就用vue
  • ImageView和ToggleButton

    ImageView是显示图片的一个控件 ImageView属性 android src drawable ic launcher ImageView的内容图像 android background drawable ic launcher
  • 复盘:C语言中int a[][3]={1,2,3,4,5,6,7,8}什么意思,int a[3][]又是什么意思,结果为10的是

    复盘 C语言中int a 3 1 2 3 4 5 6 7 8 什么意思 int a 3 又是什么意思 结果为10的是 提示 复盘牛客网的互联网大厂笔试题 文章目录 复盘 C语言中int a 3 1 2 3 4 5 6 7 8 什么意思 in
  • go-carbon 2.2.4 版本发布, 轻量级、语义化、对开发者友好的Golang时间处理库

    carbon 是一个轻量级 语义化 对开发者友好的 golang 时间处理库 支持链式调用 目前已被 awesome go 收录 如果您觉得不错 请给个 star 吧 github com golang module carbon gite
  • Docker 之 私有镜像仓库(Harbor)搭建

    下载地址 https github com goharbor harbor releases 文档地址 https github com goharbor harbor tree master docs 1 10 一 下载harbor 压塑
  • 【Python】菜鸡小技巧总结

    本菜鸡在刷leetcode时的一些备忘录 关于 split 的用法 s a good example res s split print res a good example res s split print res a good exa