我们来举个例子吧
a=['help', 'copyright', 'credits', 'license']
b=a
b.append('XYZ')
b
['help', 'copyright', 'credits', 'license', 'XYZ']
a
['help', 'copyright', 'credits', 'license', 'XYZ']
Run Code Online (Sandbox Code Playgroud)
我想在列表'b'中附加值,但列表'a'的值也已更改.
我想我不知道为什么会这样(python通过引用传递列表).
我的问题是"如何通过值传递它,以便附加'b'不会改变'a'中的值?"
最近我注意到,当我转换list
到set
元素的顺序发生变化,由字符排序.
考虑这个例子:
x=[1,2,20,6,210]
print x
# [1, 2, 20, 6, 210] # the order is same as initial order
set(x)
# set([1, 2, 20, 210, 6]) # in the set(x) output order is sorted
Run Code Online (Sandbox Code Playgroud)
我的问题是 -
是否可以在Python字典中为每个值分配多个键.一种可能的解决方案是为每个键分配值:
dict = {'k1':'v1', 'k2':'v1', 'k3':'v1', 'k4':'v2'}
Run Code Online (Sandbox Code Playgroud)
但这不是内存效率,因为我的数据文件大于2 GB.否则你可以制作字典键的字典:
key_dic = {'k1':'k1', 'k2':'k1', 'k3':'k1', 'k4':'k4'}
dict = {'k1':'v1', 'k4':'v2'}
main_key = key_dict['k2']
value = dict[main_key]
Run Code Online (Sandbox Code Playgroud)
这也是非常耗费时间和精力的,因为我必须经历两次整个字典/文件.还有其他简单和内置的Python解决方案吗?
注意:我的字典值不是简单的字符串(如问题'v1','v2')而是相当复杂的对象(包含不同的其他字典/列表等等,并且不可能腌制它们)
注意:问题看起来类似如何我同时使用键和索引作为相同的字典值?
但我不是在寻找有序/索引字典,我正在寻找其他有效的解决方案(如果有的话),除了这个问题中提到的两个.
从Pandas数据框中,如何获得非"NaN"值的索引?
我的数据框是
A b c
0 1 q1 1
1 2 NaN 3
2 3 q2 3
3 4 q1 NaN
4 5 q2 7
Run Code Online (Sandbox Code Playgroud)
我想要列b不是NaN 的行的索引.(其他列中可能有NaN值,例如c)
non_nana_index = [0,2,3,4]
使用这个非"NaN"索引列表我想创建新的数据框,其中列b没有"南"
DF2 =
A b c
0 1 q1 1
1 3 q2 3
2 4 q1 NaN
3 5 q2 7
Run Code Online (Sandbox Code Playgroud) 我有一个qsub脚本
#####----submit_job.sh---#####
#!/bin/sh
#$ -N job1
#$ -t 1-100
#$ -cwd
SEEDFILE=/home/user1/data1
SEED=$(sed -n -e "$SGE_TASK_ID p" $SEEDFILE)
/home/user1/run.sh $SEED
Run Code Online (Sandbox Code Playgroud)
问题是 - 它将所有错误和输出文件(job1.eJOBID和job1.oJOBID)放在我运行qsub submit_job.sh的同一目录中,而我想保存这些文件(输出和错误日志文件在相同的不同place(指定为$ SEED_output).我试图将行更改为
/home/user1/run.sh $SEED -o $SEED_output
Run Code Online (Sandbox Code Playgroud)
但它没有用.有什么建议?? 如何指定默认输出和错误日志文件的路径和名称?
在ggplot2中,如何将绘图标题放在绘图的底部.
qplot(rnorm(100)) + ggtitle("My Title")
Run Code Online (Sandbox Code Playgroud)
把标题放在情节的中间和顶部,而我希望它位于情节的中间和底部.
如何在Rstudio中配置和使用拼写检查?在工具>全局选项>拼写中,我将主词典语言设置为英语(美国),将自定义词典设置为"/usr/lib/rstudio/resources/dictionaries/en_US.dic"中的en_us.
我仍然没有看到错误拼写上的任何迹象(例如红色制作)!!
在FANN的Python实现中,我收到了这个错误
from pyfann import libfann
ann = libfann.neural_net()
ann.create_standard(4, 2, 8, 9, 1)
#FANN Error 11: Unable to allocate memory.
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
在python中注释多行,我们使用三引号
def x():
"""This code will
add 1 and 1 """
a=1+1
Run Code Online (Sandbox Code Playgroud)
但是,如果我必须注释掉已经包含很多其他注释块的代码块(三重引用注释),该怎么办?例如,如果我想完全注释掉这个功能..
"""
def x():
"""This code will
add 1 and 1 """
a=1+1
"""
Run Code Online (Sandbox Code Playgroud)
这不起作用.我怎样才能注释掉这些代码块.
考虑这个简单的功能
def foo(l=[]):
if not l: print "List is empty"
else : print "List is not empty"
Run Code Online (Sandbox Code Playgroud)
现在让我们打电话给foo
x=[]
foo(x)
#List is empty
foo('')
#List is empty
Run Code Online (Sandbox Code Playgroud)
但如果x = [''],则列表不被视为空!
x=['']
foo(x)
#List is not empty
Run Code Online (Sandbox Code Playgroud)
问题 -
为什么空值列表不被视为空?(在变量的情况下,它被认为是空的,例如)
x=''
if x:print 'not empty!!'
else: print 'empty'
Run Code Online (Sandbox Code Playgroud)如何修改函数foo(),以便列表将在所有这些情况下被视为空:x=[]
,x=['']
,x=['', '']