小编2rs*_*2ts的帖子

Prolog返回一个列表而不是几个可能的字符串

answer("Yes").
answer("No").
answer("Variable = value").
receive(A) :- answer(A).


2 ?- answer(A).

A = [89, 101, 115]

Yes
Run Code Online (Sandbox Code Playgroud)

我想要A = "Yes"等等.我做错了什么?

string logic list prolog

1
推荐指数
1
解决办法
212
查看次数

python是否有类似于字典的列表的内置get()?

我想从列表中提取一个项目并返回默认值(如果没有找到)(而不是通常的索引例外).与字典上的get(key,default)非常相似.在仔细阅读文档之后,感觉我仍然忽略了一个提供此功能的简单内置python解决方案.

这是我能想到的最快的:

def pluck(list_items, index, default=None):
  return dict(zip(range(len(list_items)), list_items)).get(index, default)

s = [1, 2,]
pluck(s, 3, None)
Run Code Online (Sandbox Code Playgroud)

谢谢!

python

1
推荐指数
1
解决办法
162
查看次数

等同列表如何工作? - 可变的基本概念

为什么在以下情况下list2不是[3,5]

>>>list1=[3,5]
>>>list2=list1
>>>list1[0]=2
>>>list1
   [2,5]
>>>list2
   [2,5]
Run Code Online (Sandbox Code Playgroud)

但是当我在这里尝试它是[3,5]:

>>>list1=[3,5]
>>>list2=list1
>>>list1=[3,5,7]
>>>list2
   [3,5]
Run Code Online (Sandbox Code Playgroud)

python python-3.x

1
推荐指数
1
解决办法
1139
查看次数

如何通过检测按键来打破Python中的这个循环

from subprocess import call
try:
    while True:
        call (["raspivid -n -b 2666666.67 -t 5000 -o test.mp4"],shell=True)
        call (["raspivid -n -b 2666666.67 -t 5000 -o test1.mp4"],shell=True)
except KeyboardInterrupt:
    pass
Run Code Online (Sandbox Code Playgroud)

当我按任何按钮时,我打算让它打破循环.但是我尝试了许多方法来打破它们并且没有一个工作.

python python-2.7 raspberry-pi

1
推荐指数
1
解决办法
2万
查看次数

*非常*嵌套的元组理解

我有这样的数据(是的,这些元组保证有5个元素):

ts = ([('a','b','c','d','e'), ('v','w','x','y','z'),
       ('f','g','h','i','j'), ('a','foo','bar',1,2),
       ('f','g','baz',1,3), ('f','g','baz',3,4)])
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其解析为嵌套字典结构,如下所示:

d = {
    'a': {
        'b': {
            'c': [('d','e')]
        },
        'foo': {
            'bar': [(1,2)]
        }
    },
    'f': {
        'g': {
            'h': [('i', 'j')],
            'baz': [(1,3), (3,4)]
        }
    },
    'v': {
        'w': {
            'x': [('y', 'z')]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的; 它似乎工作正常:

>>> d = {}
>>> for t in ts:
...     if t[0] not in d:
...         d[t[0]] = {t[1]: {t[2]: [(t[3], t[4])]}}
...     elif t[1] not in d[t[0]]: …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 dictionary-comprehension

0
推荐指数
1
解决办法
104
查看次数

计算一次的函数,缓存结果,并从缓存无限返回(Python)

我有一个执行昂贵操作的功能,经常被调用; 但是,操作只需执行一次 - 其结果可以缓存.

我尝试制作一个无限的发电机,但我没有得到我预期的结果:

>>> def g():
...     result = "foo"
...     while True:
...         yield result
... 
>>> g()
<generator object g at 0x1093db230>    # why didn't it give me "foo"?
Run Code Online (Sandbox Code Playgroud)

为什么不是g发电机?

>>> g
<function g at 0x1093de488>
Run Code Online (Sandbox Code Playgroud)

编辑:如果这种方法不起作用,这很好,但我需要的东西与常规函数完全相同,如下所示:

>>> [g() for x in range(3)]
["foo", "foo", "foo"]
Run Code Online (Sandbox Code Playgroud)

python caching generator python-2.7

0
推荐指数
1
解决办法
289
查看次数

为什么需要使用eval将3**631 + 29输入到int函数?

res=0
num=int(input("Enter a positive integer:"))
while num>0:
     res=res+(num % 10)
     num=num//10
 print (res)
Run Code Online (Sandbox Code Playgroud)

为什么输入3**631+29是有问题的?为什么可以eval解决这个问题?正如我所看到的,程序输出将显示"逐步"对输入整数中的数字进行求和,因此它3**631+29是不是整数而是字符串?但是为什么要eval参与?

python

0
推荐指数
1
解决办法
114
查看次数

Python使用了大量的RAM

我在下面写了这个简单的代码来比较Python和Fortran的速度.

import time

start = time.time()

x = 0

for i in range(1,1000000000):
    x = x + i
    x = 0

end = time.time()

print end - start
Run Code Online (Sandbox Code Playgroud)

我设置x = 0,因为在Fortran中溢出.当我通过Fortran运行代码时,它会在9秒内返回答案,但是当我通过Python运行代码时,Python会占用系统内存的所有24GB和程序崩溃.

有什么问题?

python python-2.x

0
推荐指数
1
解决办法
655
查看次数

尝试反转数组时ArrayIndexOutOfBoundsException

这看起来很简单,但我得到了错误 "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at reverse.main(reverse.java:28)"

我最初从用户那里获取输入来编写数组,然后我想向后打印数组.我知道还有其他方法可以做到这一点,但我主要想知道为什么这不起作用.逐行完成它是有道理的吗?

PS.如果这不是问题,有没有更好的方法呢?

import java.util.Scanner;


public class reverse {

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.printf("Enter the number of values in array: ");
        Scanner scanner = new Scanner(System.in);
        int n;
        n = scanner.nextInt();

        double[] a1 = new double[n];
        int i;

        System.out.printf("Enter the value in the array: ");
        for (i = 0; i < n; i++){
            Scanner scanner2 = new Scanner(System.in);
            a1[i] = scanner2.nextInt();
            }
         double j;
         double …
Run Code Online (Sandbox Code Playgroud)

java arrays

0
推荐指数
1
解决办法
146
查看次数

合并R中的两个数据帧

我想合并两个具有大致相同行数的数据帧.但合并需要以特殊方式完成.

假设两个数据帧是AB.并且Ai,Bi表示i各个数据帧的第一行.

然后我想要一个包含以下行的新数据帧:

A1

B1 

A2 

B2 

...
Run Code Online (Sandbox Code Playgroud)

这是一个玩具示例:

A <- data.frame(col1 = paste("A", 1:5, sep = ""), col2 = rivers[1:5])
B <- data.frame(col1 = paste("B", 1:6, sep = ""), col2 = rivers[1:6])
Run Code Online (Sandbox Code Playgroud)

我想要一个新的数据帧C.

> C

   col1 col2

1    A1  735

6    B1  735

2    A2  320

7    B2  320
...
Run Code Online (Sandbox Code Playgroud)

我如何在R中有效地做到这一点?请注意,两行之间没有空行,如此处所示.

r

0
推荐指数
1
解决办法
195
查看次数

如何在Python中交换列表中的2个项目?

def swap_name(name_list): 
""" (list of str) -> NoneType 

Modify name_list so that the first name and last name are swapped. 

>>> name = ['Tommy', 'Jason'] 
>>> swap_name(name) 
>>> name 
['Jason', 'Tommy'] 

""" 
# My Answer which is not complete and i don't know how to complete it or how to correct it. I tried in every way but it didn't work...I need your help

for i in range (len (name_list)):
    name_list[i] = [name_list[1] , name_list[0]]
Run Code Online (Sandbox Code Playgroud)

python

-2
推荐指数
1
解决办法
1857
查看次数

我该怎么做才能解决这个错误?ImportError:没有名为requests.structures的模块

我正在尝试在python 2.7中运行scrapy项目,但我遇到了这个问题.我有其他问题,但解决了他们sudo pip install ...我在谷歌查找但无法找到任何解决这个问题.

python importerror scrapy

-3
推荐指数
1
解决办法
382
查看次数