我正在尝试编写在Python中导入和导出复数列表的代码.到目前为止,我正在尝试使用csv模块.我使用以下方法将数据导出到文件:
spamWriter = csv.writer(open('data.csv', 'wb')
spamWriter.writerow(complex_data)
Run Code Online (Sandbox Code Playgroud)
复杂数据是复杂(re,im)函数生成的列表编号.例如:
print complex_data
[(37470-880j),(35093-791j),(33920-981j),(28579-789j),(48002-574j),(46607-2317j),(42353-1557j),(45166-2520j),(45594-232j),(41149+561j)]
Run Code Online (Sandbox Code Playgroud)
然后稍后导入它,我尝试以下方法:
mycsv = csv.reader(open('data.csv', 'rb'))
out = list(mycsv)
print out
[['(37470-880j)','(35093-791j)','(33920-981j)','(28579-789j)','(48002-574j)','(46607-2317j)','(42353-1557j)','(45166-2520j)','(45594-232j)','(41149+561j)']]
Run Code Online (Sandbox Code Playgroud)
(请注意,这是一个列表列表,我恰好只使用了一行示例.)
我现在需要把它变成复数而不是字符串.我认为应该有一种方法可以用这个问题进行映射,但我无法弄清楚如何使它工作.任何帮助,将不胜感激!
或者,如果有任何更简单的方法来导入/导出我不知道的复数值数据,我会很乐意完全尝试其他方法.
可能重复:如何在Python中将字符串转换为整数?
大家好,
我试图将这个字符串整数从嵌套列表转换为整数.这是我的清单:
listy = [['+', '1', '0'], ['-', '2', '0']]
Run Code Online (Sandbox Code Playgroud)
我试图转换为这个:
[['+', 1, 2], ['-', 2, 0]]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的,但我的第二行代码取自问题中的一个答案如何在Python中将字符串转换为整数?
listy = [['+', '1', '0'], ['-', '2', '0']]
T2 = [list(map(int, x)) for x in listy]
print(T2)
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误:
ValueError: invalid literal for int() with base 10: '+'
Run Code Online (Sandbox Code Playgroud)
有没有办法在Python 3中解决这个问题?
我有一个列表,其中包含进一步的字符串列表,这些字符串可能代表单词(在字母数字意义上)或整数,例如
myLists = [['5','cat','23'],
['33','parakeet','scalpel'],
['correct','horse','battery','staple','99']]
Run Code Online (Sandbox Code Playgroud)
我想解析数组,以便所有整数表示形式都转换为整数。为此,我有一个简单的函数 numParser(string) :
def numParser(s):
try:
return int(s)
except ValueError:
return s
Run Code Online (Sandbox Code Playgroud)
凭借我的 c/java 背景,我通常只会迭代两个数组,更改每个值(尽管这些数组是同质的)。但我对 python 很陌生,认为可能有更好的方法来做到这一点,所以我四处搜索,发现了一些关于 map() 和列表理解的帖子。列表理解似乎不是正确的方法,因为列表不统一,但 map() 似乎应该可以工作。为了测试,我做了
a=['cat','5','4']
a = map(numParser, a)
Run Code Online (Sandbox Code Playgroud)
这有效。我不假思索地在嵌套循环上做了同样的事情,但没有。
for single_list in myLists:
single_list = map(numParser, rawData)
Run Code Online (Sandbox Code Playgroud)
现在,在收到未更改的二维数组后,我突然想到迭代器正在处理对数组的引用,而不是数组本身。是否有一种超级时髦的Python方法来实现我将所有整数表示形式转换为整数的目标,或者我是否需要直接访问每个数组值来更改它,例如 myLists[1][2] = numParser(myLists[1][2 ])?
我有大量的字符串,我想转换为整数.在Python 3.7中执行列表字典查找的最简洁方法是什么?
例如:
d = {'frog':1, 'dog':2, 'mouse':3}
x = ['frog', 'frog', 'mouse']
result1 = d[x[0]]
result2 = d[x]
Run Code Online (Sandbox Code Playgroud)
result等于1但result2不可能:
TypeError Traceback (most recent call last)
<ipython-input-124-b49b78bd4841> in <module>
2 x = ['frog', 'frog', 'mouse']
3 result1 = d[x[0]]
----> 4 result2 = d[x]
TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)
一种方法是:
result2 = []
for s in x:
result2.append(d[s])
Run Code Online (Sandbox Code Playgroud)
这导致[1, 1, 3]但需要一个for循环.这对大型列表来说是最佳的吗?
在Python列表中,如何将一个值的所有实例映射到另一个值?
例如,假设我有这个列表:
x = [1, 3, 3, 2, 3, 1, 2]
Run Code Online (Sandbox Code Playgroud)
现在,也许我想改变这一切1的到'a',所有2的到'b',所有3的到'c',创建另一个列表:
y = ['a', 'c', 'c', 'b', 'c', 'a', 'b']
Run Code Online (Sandbox Code Playgroud)
我怎样才能优雅地进行这种映射?
MWE: 这是列表:
L=[['1', '1', '0', '0', '0'],['1', '1', '1', '1', '0'],['0', '0', '1', '1', '0']]
Run Code Online (Sandbox Code Playgroud)
我想要的清单是:
D=['11000','11110','00110']
Run Code Online (Sandbox Code Playgroud)
我该怎么做,请帮忙。
我正在尝试读取 jupyter notebook 中的文本文件并获取文件中的唯一单词。
我正在将该文件作为列表读取,然后尝试对其应用小写。但该.lower()功能不适用于列表。请帮忙。
我正在尝试将函数应用于列表。该函数接受一个值并产生另一个值。
例如:
myCoolFunction(75)
Run Code Online (Sandbox Code Playgroud)
会产生一个新的价值
到目前为止,我正在使用这个:
x = 0
newValues = []
for value in my_list:
x = x + 1
newValues.append(myCoolFunction(value))
print(x)
Run Code Online (Sandbox Code Playgroud)
我正在处理大约 125,000 个值,并且它的运行速度似乎不是很有效。
是否有更 Pythonic 的方式将函数应用于值?
我有两个字符串列表:
l1 = ["Col1", "Col2", "Col3"]
l2 = ["_ad1", "_ad2"]
Run Code Online (Sandbox Code Playgroud)
我想将两个列表l1x的笛卡尔积/串联l2成一个元素,即我想要的结果是:
["Col1_ad1", "Col1_ad2", "Col2_ad1", "Col2_ad2", "Col3_ad1", "Col1_ad1"]
Run Code Online (Sandbox Code Playgroud)
当然我可以这样做:
result = []
for colname in l1:
for suffix in l2:
result.append(f"{colname}{suffix}")
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更Pythonic的方式?
编辑:我并不是在寻找一种更Pythonic的方式来制定循环(即列表理解)。相反,我正在寻找一个内置函数,类似的函数
concatenate(l1, l2)会产生所需的结果
python ×10
list ×4
string ×3
python-3.x ×2
arrays ×1
dataframe ×1
dictionary ×1
integer ×1
join ×1
lambda ×1
mapping ×1
pandas ×1
python-2.7 ×1