小编Aks*_*til的帖子

Python - 从拥有类的div获取所有链接

我正在使用BeautifulSoup从这个网址获取手机的所有链接 http://www.gsmarena.com/samsung-phones-f-9-0-p2.php

我的以下代码是:

import urllib2
from BeautifulSoup import BeautifulSoup

url = "http://www.gsmarena.com/samsung-phones-f-9-0-p2.php"
text = urllib2.urlopen(url).read();
soup = BeautifulSoup(text);

data = soup.findAll('div',attrs={'class':'makers'});
for i in data:
    print "http://www.gsmarena.com/" + i.ul.li.a['href'];
Run Code Online (Sandbox Code Playgroud)

但是当我检查时,返回的url列表比预期的输出短,此代码输出3个值,但结果应显示超过10个值

python

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

字符串插值中的 jq 过滤表达式

我一直在尝试将数组减少为字符串以用于字符串插值。

例如。

input = ["123", "456"]
expected output = array=123,456
Run Code Online (Sandbox Code Playgroud)

这是我的尝试

$ echo '["123", "456"]' | jq 'array=\(.|join(","))'
jq: error: syntax error, unexpected INVALID_CHARACTER (Unix shell quoting issues?) at <top-level>, line 1:
array=\(.|join(","))
jq: 1 compile error
Run Code Online (Sandbox Code Playgroud)

json string-interpolation jq

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

在Array.reduce中使用扩展表示法

我试图让es6语法适用于此代码片段.

let checkList = [1, 2].map(i => "Check " + i)

let checks = checkList
  // .reduce((acc, check) => Object.assign(acc, {[check]: {valid: false}}), {})
  .reduce((acc, check) => {...acc, {[check]: {valid: false}}}, {})
console.log(checks)
Run Code Online (Sandbox Code Playgroud)

如果我在https://babeljs.io中使用注释行的输出如下所示,这是我想要使用新语法得到的.

Object {
  "Check 1": Object {
    "valid": false
  },
  "Check 2": Object {
    "valid": false
  }
}
Run Code Online (Sandbox Code Playgroud)

我不确定此代码中是否存在语法错误.我尝试选择babeljs中的所有预设,但它无法正确编译.

javascript ecmascript-6 ecmascript-next

4
推荐指数
2
解决办法
2695
查看次数

使用 jq 选择多个字段

我正在尝试使用以下 jq 过滤器过滤 docker-machine 的输出。

docker-machine inspect default | jq '{ConfigVersion, .Driver.{MachineName, CPU, Memory}, DriverName}'
Run Code Online (Sandbox Code Playgroud)

第一个命令的原始 json 在这里

{
    "ConfigVersion": 3,
    "Driver": {
        "IPAddress": "192.168.99.100",
        "MachineName": "default",
        "SSHUser": "docker",
        "SSHPort": 52314,
        "SSHKeyPath": "/Users/apatil/.docker/machine/machines/default/id_rsa",
        "StorePath": "/Users/apatil/.docker/machine",
        "SwarmMaster": false,
        "SwarmHost": "tcp://0.0.0.0:3376",
        "SwarmDiscovery": "",
        "VBoxManager": {},
        "HostInterfaces": {},
        "CPU": 2,
        "Memory": 5120,
        "DiskSize": 20000,
        "NatNicType": "82540EM",
        "Boot2DockerURL": "",
        "Boot2DockerImportVM": "",
        "HostDNSResolver": false,
        "HostOnlyCIDR": "192.168.99.1/24",
        "HostOnlyNicType": "82540EM",
        "HostOnlyPromiscMode": "deny",
        "UIType": "headless",
        "HostOnlyNoDHCP": false,
        "NoShare": false,
        "DNSProxy": true,
        "NoVTXCheck": false,
        "ShareFolder": ""
    },
    "DriverName": "virtualbox", …
Run Code Online (Sandbox Code Playgroud)

json declarative object jq

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

Java 8 流上的缓冲区运算符

我正在尝试编写一个 java 8 流收集器,它反映了rxjava 缓冲区运算符的功能

我有一个工作代码:

// This will gather numbers 1 to 13 and combine them in groups of
// three while preserving the order even if its a parallel stream.
final List<List<String>> triads = IntStream.range(1, 14)
        .parallel()
        .boxed()
        .map(Object::toString)
        .collect(ArrayList::new, accumulator, combiner);

System.out.println(triads.toString())
Run Code Online (Sandbox Code Playgroud)

这里的累加器是这样的:

final BiConsumer<List<List<String>>, String> accumulator = (acc, a) -> {
      StringBuilder stringBuilder = new StringBuilder();
      stringBuilder.append("Accumulator|");
      stringBuilder.append("Before: ").append(acc.toString());
      int accumulatorSize = acc.size();
      if (accumulatorSize == 0) {
        List<String> newList = new ArrayList<>();
        newList.add(a);
        acc.add(newList); …
Run Code Online (Sandbox Code Playgroud)

java functional-programming java-8 rx-java java-stream

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

无法确定为什么打印后代码停止113383

我正在尝试编写编程挑战书中的第一个问题。该代码计算从a到b生成的数字数。
如果n为偶数,则新n为n / 2,如果n为奇数,则其3 * n + 1。
例如,对于22,它将计算数字22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1等等的数字是16。代码在打印113383后停止,我输入为
1 1000000

#include <iostream>
#include <map>
#include <vector>

using std::cout;
using std::cin;
using std::string;
using std::endl;


using std::vector;
using std::map;
map<long,long> solution;


long sequences(long n) {
// returns the number of numbers(including 1) `n`produces till it becomes 1
    if(n==1)
        return 1;
    else{
        // assuming n>1

        if(solution.find(n)!=solution.end())
            return solution.find(n)->second;
        long size = 0;
        while(n!=1){
            if(n%2==0){
                n = …
Run Code Online (Sandbox Code Playgroud)

c++

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