一点python基础

本文最后更新于 2023年9月22日。

## python访问列表元素

python访问列表元素可以根据单个索引访问,可以使用切片访问连续的元素,但是当想访问列表的多个不连续的元素时,可以建立一个索引列表,然后使用如下的列表推导式。

list_1 = [1,2,3,4,5]
list_2 = [2,4]
list_3 = [list_1[i] for i in list_2]
或者使用 .index()函数

list_1 = [1,2,3,4,5]
list_2 = [2,4]
list_3 = [x for x in list_1 if list_1.index(x) in list_2]

python路径处理

os.path.split(filename) 分割文件夹和文件名(带后缀)
os.path.splitext(filename) 分割文件名和后缀

python字典操作

判断python字典中key是否存在的两种方法
第一种方法:使用自带函数实现。
在python的字典的属性方法里面有一个has_key()方法,这个方法使用起来非常简单。
eg:
## 生成一个字典 d = {'name':Tom, 'age':10, 'Tel':110}
## 打印返回值 print d.has_key('name')
## 结果返回True
第二种方法:使用in方法
复制代码
## 生成一个字典 d = {'name':Tom, 'age':10, 'Tel':110}
## 打印返回值,其中d.keys()是列出字典所有的key
print ‘name’ in d.keys()
print 'name' in d
## 两个的结果都是返回True

211217

python多进程

想要做一个工具面板,点击一个按钮运行一个python文件工具
直接exec虽然能运行但功能实现不正常,尤其是基于类写的程序
用popen等函数也是如此
用os.system函数可以正常运行,但会造成进程阻塞
subprocess也会阻塞
只有mulitiprocessing.Process创建新进程可以
不过在函数中使用多进程时会产生一个与主界面相同的界面,只有把新生成的界面关掉,才能出现目标界面。
把进程的创建放到if name == __main__函数就可以了。
然而我需要在点击按钮的时候才运行相应的进程,所以又引发另一个问题,tkinter控件调用函数时传入参数,搜索很容易知道command命令使用lambda函数调用相应的函数即可传入参数。

import os
os.system("python filename")
filename最好是全路径+文件名;
其他方法:
execfile('xx.py'),括号内为py文件路径;
如果需要传参数,就用os.system()那种方法;
如果还想获得这个文件的输出,那就得用os.popen();
a=np.arange(9).reshape(3,3) ## a是一个3*3的array
## array -> list
l=a.tolist()
[[算法记录]]
## list -> array
b=np.array(l)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
os.path.isdir
os.path.isfile