1.python如何把两个字典像这样相加?
比如一个是 a:1 b:2
另一个是a:2 c:3
相加后得到的新字典是 a:1 b:2 c:3
就是说如果原字典有这个key,就不要加进来了
好像没那么复杂啦,一行代码就搞定了!
{**d2, **d1} #so pythonic!
结果截图:
2.python中如何比较简单的把一个列表按指定数目分成多个列表?
比如[1,2,3,4,5,6,7,8,9,10]分成[1,2,3][4,5,6][7,8,9][10]
给出一种方法:
def list_of_groups(init_list, childern_list_len):
list_of_groups = zip(*(iter(init_list),) *childern_list_len)
end_list = [list(i) for i in list_of_groups]
count = len(init_list) % childern_list_len
end_list.append(init_list[-count:]) if count !=0 else end_list
return end_list
可以对任意数组任意分割!
3.python中读取字符串中特定一些字符的问题?
问题是这样的:
比如说我有一个字符串,记事本里面打开看到的是:
0x0000 aa
0x0001 abc
0x0003 abcde
那么我想获取并输出每一行最前面六个字符就可以用readline()再配合一个循环就能做到了。
但是现在如果把这一串字符赋值到一个string变量里,就应该差不多是这样:str=”0x0000 aa \n0x0001 abc \n0x0003 abcde”
请问有什么方法可以直接从str里面获取我所需要的字符串,而不通过对文件进行操作?
首先这是一个很基础的问题,方法有很多种。这里给出一种处理方法
with open('./data.txt', 'r') as fp:
data = fp.read()
[i for i in data.split() if i.startswith('0x')]
结果显示:
4.python如何对excel表格指定内容查找?
如何对excel表格,根据指定名字和指定项目进行查找数据,例如,查找李三的语文成绩,请教大虾,谢谢。
谢邀!看代码
import pandas as pd
data = pd.read_excel('./test.xlsx')
data[data.姓名 == '张三'].语文
这样就可以了。
也可以有这种写法
import pandas as pd
data = pd.read_excel('./test.xlsx', index_col='姓名')
# 现在查询成绩就可以写成如下风格,如查询李四语文成绩
data.loc['李四', '语文']
如果想把 读取到的张三的语文成绩修改到李四的数学那 只需要如下操作
data.loc['李四', '数学'] = data.loc['张三', '语文']
5.python3.X 如何将list里满足条件的元素与前一个元素合并并将满足条件的元素删除?
List = [aa,1a,1b,bb,bb1,1a,1c,cc,c2,2c,1ac]
现在想将list里以1开头的元素加到前一个元素,并将此元素删除。即列表变为:
List =[aa1a1b,bb,bb11a1c,cc,c2,2c1ac]
直接上代码
list_ = ['aa', '1a', '1b', 'bb', 'bb1',
'1a', '1c', 'cc', 'c2', '2c', '1ac']
def func(list_):
for j, i in enumerate(list_):
if i.startswith('1', 0):
list_[j-1] += list_[j]
del list_[j]
if any([i.startswith('1', 0) for i in list_]):
list_ = func(list_)
return list_
6.python 如何处理提取嵌套中括号 [] 的内容?
import re
b = "[[1,2,344],[323,3,34]]"
regex1 = re.compile(r'\[\[(.*)\]\]')
print (regex1.findall(b))
提取括号内的数字,保存顺序不变。
“””方法一”””
str_ = "[[1,2,344],[323,3,34]]"
list_ = eval(str_)
[i for k in list_ for i in k]
“”””方法二”””
import re
string = "[[1,2,344],[323,3,34]]"
regex = re.compile('\d+')
[int(i) for i in re.findall(regex, string)]
7.有关python的一道题,求alice出现了多少次以及最长单词?
回答:
方法一:
import re
max_len = 0
max_len_word = None
with open('./input.txt', 'r') as r_fp:
string = r_fp.read()
str_ = re.findall('\w+', str.lower(string))
word_set = sorted(list(set(str_)))
with open('./result.txt', 'w') as w_fp:
for word in word_set:
number = re.search('\d', word)
not_str = re.search('\W', word)
if not number and not not_str:
w_fp.write(word + ' : ' + str(str_.count(word)) + '\n')
if len(word) > max_len:
max_len = len(word)
max_len_word = word
print("max_len_word: {0} \n max_len: {1}".format(max_len_word, max_len))
这里解释一下为什么会有差异,原因是我的《爱丽丝历险记》是随便从网上下载的。alice这个词出现了282次
方法二:
import re
import numpy as np
from collections import Counter
# def statistic_fun2():
with open('./input.txt', 'r') as fp:
string = fp.read()
str_ = re.findall('\w+', str.lower(string))
list_ = Counter(str_)
max_index = np.argmax([len(i) for i in list_.keys()])
max_len_word = list(list_.keys())[max_index]
alice_count = list_.get('alice')
print("max_len_word: {0} \n alice_count: {1}".format(max_len_word, alice_count))
两种方法的性能比较:
8.Python中如何把两个list合并,并按从小到大顺序排列?
如题
要用while loop做,不能用sort
谢谢!
a = [1, 3, 2, 78, 32]
b = [23, 32, 12, 78, 65]
def quick_sort(alist):
if alist == []:
return []
else:
pivot = alist[0]
lesser = quick_sort([x for x in alist[1:] if x <= pivot])
greater = quick_sort([x for x in alist[1:] if x > pivot])
return lesser + [pivot] + greater
quick_sort(a+b)
9.如何用Python读取json文件中的元组?
比如我现在有一个这样的JSON文件
{
a:1,
b:2,
c:[{aa:11,bb:12,cc:13}]
}
我想遍历文件中所有的key/value对,要怎么获得这些数组长度等元素,求好心的大神指点
首先我想说题主举得例子并不是标准json格式,我来举个例子吧
10.Python 有什么奇技淫巧?
奇技淫巧倒算不上,有些时候确实是挺有用的!
list_ = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
把list_合并为[1, 2, 3, 4, 5, 6, 7, 8, 9]
[k for i in list_ for k in i]
11.爬虫怎么保存图片?
我已经爬到了http.xxxx.jpg这样的连接
但是不知道怎么保存到本地
import requests
for i, j in enumerate(imgUrlList):
with open('E:/{0}.jpg'.format(i), 'wb') as file:
file.write(requests.get(j).content)
用with进行上下文管理不需要人为的关闭文件,一旦程序退出with模块文件会自动关闭。本地地址可以随便换,这里用的是requests库如果没有安装直接命令行安装:
pip3 install requests
enumerate函数的功能简单解释,例如:
list_ = ['a', 'b', 'c']
for i, j in enumerate(list_):
print([i, j])
输出结果为:
[0, 'a']
[1, 'b']
[2, 'c']
在这里 i 迭代的是list_的索引值,j 迭代的是元素值!
文章整理自杨航锋在知乎上的回答