我有三个不同的列表.我想基于List2对List1进行排序(按升序排序).但是,我在List2中重复了一遍.然后我想按List3对这些重复进行排序(按降序排列).足够困惑?
是)我有的:
List1 = ['a', 'b', 'c', 'd', 'e']
List2 = [4, 2, 3, 2, 4]
List3 = [0.1, 0.8, 0.3, 0.6, 0.4]
Run Code Online (Sandbox Code Playgroud)
我想要的是:
new_List1 = ['b', 'd', 'c', 'e', 'a']
Run Code Online (Sandbox Code Playgroud)
'b'出现在'd'之前,因为0.8> 0.6.'e'出现在'a'之前,因为0.4> 0.1.
有帮助吗?
谢谢!
我一直在尝试制作一个可执行文件,而我正在接近.请不要建议我使用PyInstaller - 我已经尝试过这条路线,在这里询问,并且已经订购了门票.它很接近但不太合适.我现在正在尝试py2exe,我也非常接近.在pyinstaller中,我能够创建资源文件(使用包含的文件构建可执行文件 - 然后我可以在临时文件夹中访问这些文件).
我想对py2exe做同样的事情.我有一个可执行文件,但有五个额外的文件夹(地图,mpl-data,data,pics和tcl).我已经看到了这个问题,但似乎无法理解它,也无法让它发挥作用.在我的主py文件中,我正在使用PersistentDict(filepath)
哪个是我需要文件路径的地方.
我的问题分为两部分:1.如何将文件(下面的数据文件)打包到可执行文件中.2.如何在我的代码中访问这些文件并返回它们的路径(如字符串),例如/temp/file1.jpg.
这是我的py2exe安装文件的代码 - 注意我有matplotlib,必须在我的可执行文件中正确包含mpl-data.谢谢!
from distutils.core import setup
import py2exe
import shutil
import glob
import matplotlib,six
opts = {'py2exe': { "includes" : ["matplotlib.backends",
"matplotlib.backends.backend_qt4agg",
"matplotlib.figure","numpy",
"six",
"mpl_toolkits.basemap",
"matplotlib.backends.backend_tkagg"],
'excludes': ['_gtkagg', '_tkagg','_agg2','_cairo',
'_cocoaagg', '_fltkagg', '_gtk', '_gtkcairo', 'tcl' ],
'dll_excludes': ['libgdk-win32-2.0-0.dll','w9xpopen.exe',
'libgobject-2.0-0.dll'],
'bundle_files': 1,
'dist_dir': "Dist Folder",
'compressed': True,
}
}
data_files = [(r'mpl-data', glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\*.*')),
(r'mpl-data', [r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']),
(r'mpl-data\images',glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\images\*.*')),
(r'mpl-data\fonts',glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\*.*')),
(r'mpl-data\data', glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\data\*.*')),
('data', ['C:\\Users\\Me\\Documents\\Example_Json_File.json']),
('pics', ['C:\\Users\\Me\\Documents\\Example_Icon.ico',
'C:\\Users\\Me\\Documents\\Example_Jpg.jpg',
])]
setup(windows=[{"script" : "MyMainScript.py", …
Run Code Online (Sandbox Code Playgroud) 之前已经问过这个问题,我似乎无法使我的PyInstaller正常工作.我在mainscript.py文件中调用了以下代码:
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
Run Code Online (Sandbox Code Playgroud)
当我运行py文件(在IDLE中)时,我的应用程序运行完美并加载所有数据文件.但是,当我用PyInstaller 2.1(一种文件方法)捆绑它时,我在exe构建后得到以下错误:
Traceback (most recent call last):
File "<string>", line 37, in <module>
WindowsError: [Error 3] The system cannot find the path
specified: 'C:\\Users\\Me\\AppData\\Local\\Temp\\_MEI188722\\eggs/*.*'
Run Code Online (Sandbox Code Playgroud)
有谁知道我哪里出错了?谢谢!
**编辑**
这正是我想要做的.
我的主脚本有一个设置(导入),如下所示.基本上我希望能够在其中包含Matplotlib,Basemap和资源路径:
import os,sys
import matplotlib
matplotlib.use('WX')
import wx
from matplotlib.backends.backend_wx import FigureCanvasWx …
Run Code Online (Sandbox Code Playgroud) 我希望能够从我的 python 脚本中运行一个 tcl 脚本。具体来说,我想运行一个Tcl脚本就像这样。
我对python有一些了解,对tcl一无所知。
我一直在尝试这样的事情:
import Tkinter
r=Tkinter.Tk()
r.call('source{DIS.tcl})' or r.tk.eval('source{DIS.tcl})'
Run Code Online (Sandbox Code Playgroud)
任何想法我将如何访问 tcl 脚本之外的东西?谢谢!
我已经对SO进行了搜索,但还没有找到解决问题的正确"解决方案".我在一些我希望绘制的数据上运行循环.在循环的每一步 - 我用plt.show()绘制图形.但是,因为这是一个阻塞功能,所以直到我手动关闭窗口然后循环继续并且下一个图显示为止.
我想要做的是能够绑定按键事件以关闭图形并继续循环(而不是使用鼠标从图中"X").
如果这是不可能的,我想设置一个计时器来关闭数字并继续循环.
我所有的问题似乎都解决了plt.show()阻止其他一切的事实 - 任何解决方法?
关于我的情节的一些注释:它们使用相同的轴,但包含散点图,填充框和注释 - 它们总是在变化.
谢谢!
我正在使用此代码,当我点击底图Matplotlib图中的一个点时,会在地图上弹出注释.
dcc = DataCursor(self.figure.gca())
self.figure.canvas.mpl_connect('pick_event',dcc)
plot_handle.set_picker(5)
self.figure.canvas.draw()
class DataCursor(object):
import matplotlib.pyplot as plt
text_template = 'x: %0.2f\ny: %0.2f'
x, y = 0.0, 0.0
xoffset, yoffset = -20 , 20
text_template = 'A: %s\nB: %s\nC: %s'
def __init__(self, ax):
self.ax = ax
self.annotation = ax.annotate(self.text_template,
xy=(self.x, self.y), xytext=(0,0),
textcoords='axes fraction', ha='left', va='bottom', fontsize=10,
bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=1),
arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0')
)
self.annotation.set_visible(False)
self.annotation.draggable()
def __call__(self, event):
self.event = event
self.x, self.y = event.mouseevent.xdata, event.mouseevent.ydata
if self.x is not None:
glim = pickle.load(open("ListA.py","rb"))
tlim …
Run Code Online (Sandbox Code Playgroud) 我有两个下拉列表 - 一个依赖于另一个 - 这意味着如果我从A1中的列表中选择一个特定值,则特定列表将出现在A2中.这很好用.但是,当我更改A1中的值时,A2会一直停留在单元格中,直到我点击列表 - 然后我在A2中的值将根据我的选择而改变.
例如,如果列表1为['是','否'],则列表为是:[1,2,3]否:[4,5,6].首先,我为A1选择"是",然后为A2选择2.然后,如果我为A1选择"否",则"2"保持在A2,直到我实际点击A2以选择新值(4,5,6).一旦我改变了A1选择,有没有办法"清除"A2?
谢谢!
我正在使用 PyInstaller (v1.5) 构建一个可执行文件 - 另外,我正在使用 GUI2EXE 来帮助我。我的脚本需要位于工作目录中的图标文件:
icon_file = '\pics\myicon.ico'
Run Code Online (Sandbox Code Playgroud)
当我构建可执行文件时,我希望不必包含“工作目录”,而是将图标文件包含在我的可执行文件中。有没有办法做到这一点?
如果此后没有成功,我想要一个包含我的图标文件的文件(我的可执行文件)。
我还希望对任何图像文件甚至数据文件执行此操作...
谢谢!
我在wxpython GUI中使用matplotlib.简而言之,我绘制了一堆数据.然后我点击一个数据点(使用DataCursor找到:
matplotlib是否相当于MATLAB的datacursormode?
要么
第二个链接是我的实际实现.我从其他类中重新编写datacursor类.我想知道,如何通过单击事件按钮删除注释?例如,我有一个事件按钮来更新我的散点图(通过使用plot_handle.set_data而不是清除图).但是,无论该点是否存在,注释仍然保持原样.我该如何删除它?
谢谢!
我在Matplotlib中使用Basemap来绘制美国地图.但是,我似乎无法移除墨西哥或加拿大只是让美国显示.我也需要绘制状态.目前,我的代码是:
self.map = Basemap(llcrnrlon=-119, llcrnrlat=22, urcrnrlon=-64,
urcrnrlat=49, projection='lcc', lat_1=33, lat_2=45,
lon_0=-95, resolution='i', area_thresh=10000,ax=self.axes)
self.map.drawcoastlines()
self.map.drawcountries()
self.map.drawstates()
self.figure.canvas.draw()
Run Code Online (Sandbox Code Playgroud)
这显示了一些墨西哥和加拿大的美国.如果我发表评论self.map.drawcountries()
,那么美国南部和北部的边界将被删除,因此这无济于事.如果我发表评论self.map.drawcoastlines()
,这将删除东西边界.我找不到任何其他允许我只绘制美国(带状态)的命令.
有任何想法吗?谢谢!
我已经看过这篇文章和这篇文章以及其他许多文章,但还没有找到我的问题的答案,也无法弄明白.
我有一份清单.例如,它看起来像:
Dict = {'a':[1,2,3,4], 'b':[9,8,7,6], 'c':[8,5,3,2]}
Run Code Online (Sandbox Code Playgroud)
我想根据列表中的特定项返回已排序(降序/反向)的键列表.例如,我想根据每个列表中的第4项对a,b,c进行排序.
这应该返回sorted_keys = ['b','a','c']
按值排序的列表[6,4,2]
.
合理?请帮忙......谢谢!
我搜索过,并没有找到与我相同的问题.我想从python中的列表列表中删除重复项; 但是,我不关心列表中值的顺序.我这样做的方式目前太耗时了.
我想做的事:
A = [[1,2,3] , [2,3,4] , [3,4,5] , [3,2,4]]
Run Code Online (Sandbox Code Playgroud)
我想搜索A并删除所有重复项.这里的重复是[2,3,4]和[3,2,4].这将减少到:
smaller_A = [[1,2,3] , [2,3,4], [3,4,5]]
Run Code Online (Sandbox Code Playgroud)
我目前是怎么做的:
todelete = []
for i in range(len(A)):
for j in range(i+1,len(A)):
if set(A[i]) == set(A[j]):
todelete.append(j)
todelete = sorted(set(todelete))
smaller_A= [A[i] for i in range(len(A)) if i not in todelete]
Run Code Online (Sandbox Code Playgroud)
同样,这可行,但是当我的列表很大时,它非常耗时.有任何想法吗?谢谢!
python ×11
matplotlib ×5
list ×3
annotations ×2
plot ×2
pyinstaller ×2
sorting ×2
wxpython ×2
build ×1
dictionary ×1
duplicates ×1
excel ×1
excel-2010 ×1
excel-vba ×1
exe ×1
executable ×1
figure ×1
icons ×1
py2exe ×1
python-2.7 ×1
tcl ×1
vba ×1