有没有办法定义二维数组/字典组合,其中第一个值是枚举,第二个是关联?理想情况下,最终结果如下所示,其中第一个是简单索引,第二个是键 - >值对.
data[0]["Name"] = ...
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我是python和编程的新手,需要一些帮助替换列表字典中的项目.我想,以取代None
与'None'
下面的词典:
dict = {'Chester100': ['Caesar, Augustus', '05/10/2012', '09/09/2012', None],
'Rochester102': ['Henrich, Norton', '08/18/2014', '12/17/2014', None],
'Rochester100': ['Caeser, Julius', '08/18/2014', '12/17/2014', None],
'Rochester101': [None, None, None, '08/18/2012']}
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
new_dict = {}
for i in dict: #This accesses each dictionary key.
temp = []
for j in dict[i]: #This iterates through the inner lists
if j is None:
temp.append('None')
else:
temp.append(j)
temp2 = {str(i):temp}
new_dict.update(temp2)
print(new_dict)
Run Code Online (Sandbox Code Playgroud)
产量
{'Chester100': ['Caesar, Augustus', '05/10/2012', '09/09/2012', 'None'],
'Rochester102': ['Henrich, Norton', '08/18/2014', '12/17/2014', …
Run Code Online (Sandbox Code Playgroud) 我尝试使用以下代码对数据进行洗牌。
import pandas as pd
import numpy as np
from sklearn.naive_bayes import MultinomialNB
data = pd.read_csv('dataset.txt')
np.random.shuffle(data)
Run Code Online (Sandbox Code Playgroud)
然而,运行它会给我以下错误。我不明白这个错误是从哪里来的。
Traceback (most recent call last):
File "sample2.py", line 12, in <module>
np.random.shuffle(data)
File "mtrand.pyx", line 4668, in mtrand.RandomState.shuffle (numpy/random /mtrand/mtrand.c:30498)
File "mtrand.pyx", line 4671, in mtrand.RandomState.shuffle (numpy/random/mtrand/mtrand.c:30438)
File "/Users/marcvanderpeet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/frame.py", line 1992, in __getitem__
return self._getitem_column(key)
File "/Users/marcvanderpeet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/frame.py", line 2004, in _getitem_column
result = result[key]
File "/Users/marcvanderpeet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/frame.py", line 1992, in __getitem__
return self._getitem_column(key)
File "/Users/marcvanderpeet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/frame.py", line 1999, in _getitem_column
return self._get_item_cache(key)
File "/Users/marcvanderpeet/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/generic.py", …
Run Code Online (Sandbox Code Playgroud) 如何转换字符串
{"key"=>"Number of Contents in Sales Package", "value"=>"Pack of 3"}
Run Code Online (Sandbox Code Playgroud)
进入像这样的字典
{'Number of Contents in Sales Package':'Pack of 3'}?
Run Code Online (Sandbox Code Playgroud) 因此,如果我想比较Python中的数字,例如,检查数字是否落在2到100的范围内。
以下哪种方法最可取,为什么?
使用比较运算符?
if(n>=2 and n<=100):
print("Okay")
Run Code Online (Sandbox Code Playgroud)
或使用range()函数?
if(n in range(2,101)):
print("Okay")
Run Code Online (Sandbox Code Playgroud)
如果比较非常大,您的答案也会改变吗?
我想制作一个 python 程序,它可以快速减少数组/列表中大于 1 的数字,并将其放在它前面的空白位置。假设我们有:
li = [4,1,0,0,0,1,3,0]
Run Code Online (Sandbox Code Playgroud)
我们会得到:
rtr = [1,1,0,1,1,1,1,0]
Run Code Online (Sandbox Code Playgroud)
注意 4 是如何变成 1 的,因为它已经在左边了,然后 3 在已经被取走的 1 之前被分成了 2 个位置。谁能帮我解决这个问题?
我是 bash 脚本的新手,有两个循环如下:
#!/bin/bash
##########
# Loop 1 #
##########
for x in "one two three four";
do
echo $x
done
Run Code Online (Sandbox Code Playgroud)
输出:
one two three four
Run Code Online (Sandbox Code Playgroud)
##########
# Loop 2 #
##########
var="one two three four"
for x in $var;
do
echo $x
done
Run Code Online (Sandbox Code Playgroud)
输出:
one
two
three
four
Run Code Online (Sandbox Code Playgroud)
我正在寻找指针来帮助理解为什么第一个循环echo
是字符串,而第二个循环在空格处拆分,然后echo
是每个拆分的单词。
编辑:为了清楚起见,重新表述了问题。
我有一个数组:arr=[x1, x2, x3...]
和一个函数,该函数基于第一个函数返回一个值x
,因为arr
该函数是真实的。
本质上:
# my_x is the return of func()
# with the first x in arr that func(x) is true
# and the entire arr array is not processed.
my_x=arr.ruby_magic{|x| func(x) }
my_x should be equal to first true value return of func(x)
Run Code Online (Sandbox Code Playgroud)
假设每个X
inarr
都是一个正则表达式模式。无需运行每个正则表达式,我想返回第一场比赛的捕获组。
在 Python 中,我会用next
. 它将运行每个谓词,直到返回真值,然后将该值传递给m
。如果没有 true return,None
则用作默认值,但该默认值可以是任何值:
import re
patterns=[r"no match", r": (Value.*?pref)", r": (Value.*)", r"etc..."]
s="""
This is …
Run Code Online (Sandbox Code Playgroud) 我刚开始学习Python并且来自Java/C++背景,并发现以下行为有点令人困惑.在调用s.add_trick("Woof")和d.add_trick("Woof")后,s.tricks和d.tricks都包含["Woof","Bark"].但是,调用party()没有相同的行为.谁能解释一下?
class PartyAnimal:
x = 0
name = ''
tricks = []
def __init__(self, name):
self.name = name
def party(self):
self.x += 1
def add_trick(self, trick):
self.tricks.append(trick)
s = PartyAnimal("Sally")
d = PartyAnimal("Danny")
s.party()
d.party()
s.add_trick("Woof")
d.add_trick("Bark")
print 's', s.name, s.x, s.tricks
print 'd', d.name, d.x, d.tricks
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
s Sally 1 ['Woof', 'Bark']
d Danny 1 ['Woof', 'Bark']
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多文件的目录,并且想要编辑每个文件以仅包含选定的几列。
我有以下代码,它只会打印第一列
for i in /directory_path/*.txt; do awk -F "\t" '{ print $1 }' "$i"; done
Run Code Online (Sandbox Code Playgroud)
但如果我尝试通过添加 >'$I' 来编辑每个文件,如下所示,那么我会丢失文件中的所有信息
for i in /directory_path/*.txt; do awk -F "\t" '{ print $1 }' "$i" > "$i"; done
Run Code Online (Sandbox Code Playgroud)
不过,我希望能够删除每个文件中除选定的几列之外的所有列,例如 1 和 3。
我对Perl来说是全新的,就像绝对的新手一样.我正在尝试开发一个读取数据库的系统,并根据结果生成一个启动另一个脚本的队列.
这是源代码.
现在脚本按预期工作,除了我注意到它并没有真正使线程并行.无论我使用1个线程还是50个线程,执行时间都是一样的; 1个线程甚至更快.当我有脚本显示哪个线程做了什么,我看到线程不会同时运行,因为它将执行线程1,然后是2,然后是3等.
有谁知道我在这里做错了什么?脚本本身也可以工作,而不是并行线程.
python ×7
dictionary ×3
bash ×2
list ×2
python-3.x ×2
arrays ×1
mysql ×1
nested-loops ×1
pandas ×1
perl ×1
regex ×1
ruby ×1
sorting ×1
string ×1
unix ×1