小编for*_*ran的帖子

在Python中以列表(循环方式)迭代对

问题很简单,我想迭代遍历列表中的每个元素和成对的下一个元素(将最后一个元素包装在第一个元素中).

我想过两种非常规的方式:

def pairs(lst):
    n = len(lst)
    for i in range(n):
        yield lst[i],lst[(i+1)%n]
Run Code Online (Sandbox Code Playgroud)

和:

def pairs(lst):
    return zip(lst,lst[1:]+[lst[:1]])
Run Code Online (Sandbox Code Playgroud)

预期产量:

>>> for i in pairs(range(10)):
    print i

(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
(6, 7)
(7, 8)
(8, 9)
(9, 0)
>>> 
Run Code Online (Sandbox Code Playgroud)

有关更多pythonic方式的任何建议吗?也许有一个我没有听说过的预定义功能?

也是一个更普遍的n折(有三胞胎,四重奏等代替对)版本可能很有趣.

python iteration tuples list

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

使用宏"高阶函数"生成器在C中进行函数编程

请注意,因为这是一个问题的地狱;-)

我想在C中使用模板函数进行泛型集合操作(​​如search,foreach等),同时保持编译器静态类型检查.当你使用像这个例子中的简单回调时,这是相当简单的:

#define MAKE_FOREACH(TYPE)\
void foreach_##TYPE (TYPE[n] array, int n, void(*f)(TYPE)) {\
  for(int i = 0; i < n; i++) {\
    f(array[i]);\
  }\
}
Run Code Online (Sandbox Code Playgroud)

所以你可以这样做:

MAKE_FOREACH(int)
MAKE_FOREACH(float)

void intcallback(int x){
  printf("got %d\n", x);
}

void floatcallback(float x){
  printf("got %f\n", x);
}

int main(){
  int[5] iarray = {1,2,3,4,5};
  float[5] farray = {1.0,2.0,3.0,4.0,5.0};
  foreach_int(iarray, 5, intcallback);
  foreach_float(farray, 5, floatcallback);
}
Run Code Online (Sandbox Code Playgroud)

如果我想用返回类型实现回调,例如创建一个"map"函数,我可以这样做:

#define MAKE_MAP(TYPE, RTYPE)\
RTYPE* map_##TYPE (TYPE[n] array, int n, RTYPE(*f)(TYPE)) {\
  RTYPE* result = (RTYPE*)malloc(sizeof(RTYPE)*n);\
  for(int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c functional-programming c-preprocessor

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

Java的str.join在Java中有直接的等价物吗?

可能重复:
在Java中构建一系列分隔项的最佳方法是什么?
Java:将List <String>转换为join()d字符串

在Java中,给定一个集合,获取迭代器并为第一个(或最后一个)元素执行单独的大小写,其余的以获取逗号分隔的字符串看起来相当沉闷,是否有类似于str.joinPython的东西?

进一步澄清,以避免它被重复关闭:我宁愿不使用像Apache Commons这样的外部库.

谢谢!

几年后更新......

Java 8来救援

python java string

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

带有位图字体的C头文件

我需要对像素缓冲区做一些基本的文本渲染,我认为有一个用char索引的表,字母表示为二进制数组就足够了......有人知道这样的免费标题吗?

例:

char data[256][8][8];
void init()
{
  data['a'] = {
    {0,0,1,1,1,0,0,0},
    {0,1,0,0,0,1,0,0},
    {0,0,0,0,0,0,1,0},
    {0,0,1,1,1,0,1,0},
    {0,1,0,0,0,1,1,0},
    {0,1,0,0,0,0,1,0},
    {0,1,0,0,0,1,1,0},
    {0,0,1,1,1,0,1,0},
  };
}
Run Code Online (Sandbox Code Playgroud)

我可以继续使用剩余的字母表,但后来我不需要问......但是这给了我一个想法!如果没有可用的位图字体的免费标题,每个答案都可以实现一个字母,我可以在这里组装整个文件^ _ ^

c fonts header bitmap

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

Perl为Python程序员

我知道Python(和其他一些语言),我认为学习Perl可能会很好,即使看起来大部分人都是这样做.

我主要关注的不是语言本身(我认为这部分总是很容易),而是关于学习Perlish(与Pythonic形成对比)的做事方式; 因为如果我最终在Perl中编写Python编程,我认为这不值得.

所以我的问题基本上是两个:

  • 是否存在许多问题/应用领域,使用Perl而不是Python实际上更方便?
  • 如果第一个问题是积极的,那么我在哪里可以找到一个好的起点并学习不适合初学者的最佳实践?

python perl

19
推荐指数
3
解决办法
3294
查看次数

调试本机Facebook iOS应用程序中的嵌入式浏览器视图

在iOS的原生Facebook应用程序内运行时,我的Web应用程序出现故障(单击链接不会打开Safari,而是在应用程序内部嵌入浏览器).

在运行iOS模拟器时,在我的桌面游戏中,我可以选择将调试器连接到移动Safari ...所以我想知道是否可以使用在USB电缆上连接的iPhone中运行的嵌入式视图执行相同操作.

我看到的另一个问题是Facebook应用程序对任何Web内容进行了非常积极的缓存,因此我无法刷新页面并查看我的更改是否有效.我发现清理原生iOS Facebook应用程序的Web缓存的唯一方法是卸载并再次安装它.对此的解决方案也将非常受欢迎.

debugging safari facebook webview ios

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

tokenize一个字符串,保留Python中的分隔符

str.split在Python中是否有任何等效的返回分隔符?

我需要在处理一些令牌后保留输出的空白布局.

例:

>>> s="\tthis is an  example"
>>> print s.split()
['this', 'is', 'an', 'example']

>>> print what_I_want(s)
['\t', 'this', ' ', 'is', ' ', 'an', '  ', 'example']
Run Code Online (Sandbox Code Playgroud)

谢谢!

python string split tokenize

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

Scala有更好的方式来表达"自递归泛型类型"吗?

有一个常见的Java习惯用法(Enum例如见过)来声明一个必须与实际派生类型匹配的泛型类型变量.

class Enum<E extends Enum<E>> {
...
}
Run Code Online (Sandbox Code Playgroud)

或者,如果需要更多通用参数:

abstract class Foo<T, Actual extends Foo<T, Actual>> {
    //now we can refer to the actual type
    abstract Actual copy();
}
class Concrete<T> extends Foo<T, Concrete<T>> {
    Concrete<T> copy() {...}
}
Run Code Online (Sandbox Code Playgroud)

事情可以很快变得非常冗长,所以我想象Scala可能比上面例子的字面翻译更好.

有没有更优雅的方法来实现这一目标?

generics recursion scala type-safety

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

用双引号Python获取str repr

我正在使用一个小的Python脚本来生成一些将在C头中使用的二进制数据.

这个数据应该声明为a char[],如果它可以被编码为一个字符串(当它们不在ASCII可打印字符范围内时具有相关的转义序列)以保持标题比使用小数或十六进制数组编码.

问题是,当我打印reprPython字符串时,它由单引号分隔,而C不喜欢它.天真的解决方案是:

'"%s"'%repr(data)[1:-1]
Run Code Online (Sandbox Code Playgroud)

但是当数据中的一个字节恰好是双引号时,这不起作用,所以我也需要它们进行转义.

我认为简单replace('"', '\\"')可以完成这项工作,但也许有一个更好,更pythonic的解决方案.

额外点:

将数据拆分成大约80个字符的行也很方便,但是再次将大小为80的的源字符串拆分的简单方法将不起作用,因为每个不可打印的字符在转义序列中需要2或3个字符.获得repr 之后将列表拆分为80块也无济于事,因为它可以划分转义序列.

有什么建议?

c python escaping

13
推荐指数
4
解决办法
9200
查看次数

SQL插入语句中表名的别名

是否可以为我要插入值的表指定别名?

我想在嵌套查询中指定一个条件,表格太冗长了......

像转这样:

INSERT INTO my_table_with_a_very_long_name (col_a, col_b, col_c)
SELECT foo, bar, baz
FROM other_table
WHERE
  other_table.some_value > 
  (SELECT max(other_value) FROM my_table_with_a_very_long_name);
Run Code Online (Sandbox Code Playgroud)

进入这个:

INSERT INTO my_table_with_a_very_long_name AS t (col_a, col_b, col_c)
SELECT foo, bar, baz
FROM other_table
WHERE
  other_table.some_value > (SELECT max(other_value) FROM t);
Run Code Online (Sandbox Code Playgroud)

(显然我的情况更长,涉及更多参考)

sql database postgresql alias

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